From 2103bf53295afc7c5bd3c5356de45761a8874d9f Mon Sep 17 00:00:00 2001 From: Yue-cn <2777174292@qq.com> Date: Thu, 15 Aug 2024 18:42:19 +0800 Subject: [PATCH] Reupload --- .github/workflows/deploy-docs.yml | 48 + .gitignore | 18 +- package-lock.json | 4773 +++++++++++++++++ package.json | 20 +- src/.vuepress/config.ts | 16 + src/.vuepress/navbar.ts | 20 + .../public/assets/icon/apple-icon-152.png | Bin 0 -> 3568 bytes .../public/assets/icon/chrome-192.png | Bin 0 -> 4733 bytes .../public/assets/icon/chrome-512.png | Bin 0 -> 13251 bytes .../public/assets/icon/chrome-mask-192.png | Bin 0 -> 4755 bytes .../public/assets/icon/chrome-mask-512.png | Bin 0 -> 13040 bytes .../public/assets/icon/guide-maskable.png | Bin 0 -> 2270 bytes .../public/assets/icon/ms-icon-144.png | Bin 0 -> 3657 bytes .../public/assets/image/advanced.svg | 1 + src/.vuepress/public/assets/image/blog.svg | 1 + src/.vuepress/public/assets/image/box.svg | 1 + .../public/assets/image/features.svg | 1 + .../public/assets/image/github-dark.svg | 1 + .../public/assets/image/github-light.svg | 1 + src/.vuepress/public/assets/image/layout.svg | 1 + .../public/assets/image/markdown.svg | 1 + src/.vuepress/public/favicon.ico | Bin 0 -> 67646 bytes src/.vuepress/public/logo.png | Bin 0 -> 94186 bytes src/.vuepress/public/logo.svg | 1 + src/.vuepress/sidebar.ts | 94 + src/.vuepress/styles/config.scss | 3 + src/.vuepress/styles/index.scss | 1 + src/.vuepress/styles/palette.scss | 2 + src/.vuepress/theme.ts | 191 + src/README.md | 174 +- src/guides/index.md | 725 +++ src/problems/index.md | 254 + src/use/index.md | 44 + src/use/other/minecraft-service.md | 181 +- tsconfig.json | 14 + 35 files changed, 6386 insertions(+), 201 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 package-lock.json create mode 100644 src/.vuepress/config.ts create mode 100644 src/.vuepress/navbar.ts create mode 100644 src/.vuepress/public/assets/icon/apple-icon-152.png create mode 100644 src/.vuepress/public/assets/icon/chrome-192.png create mode 100644 src/.vuepress/public/assets/icon/chrome-512.png create mode 100644 src/.vuepress/public/assets/icon/chrome-mask-192.png create mode 100644 src/.vuepress/public/assets/icon/chrome-mask-512.png create mode 100644 src/.vuepress/public/assets/icon/guide-maskable.png create mode 100644 src/.vuepress/public/assets/icon/ms-icon-144.png create mode 100644 src/.vuepress/public/assets/image/advanced.svg create mode 100644 src/.vuepress/public/assets/image/blog.svg create mode 100644 src/.vuepress/public/assets/image/box.svg create mode 100644 src/.vuepress/public/assets/image/features.svg create mode 100644 src/.vuepress/public/assets/image/github-dark.svg create mode 100644 src/.vuepress/public/assets/image/github-light.svg create mode 100644 src/.vuepress/public/assets/image/layout.svg create mode 100644 src/.vuepress/public/assets/image/markdown.svg create mode 100644 src/.vuepress/public/favicon.ico create mode 100644 src/.vuepress/public/logo.png create mode 100644 src/.vuepress/public/logo.svg create mode 100644 src/.vuepress/sidebar.ts create mode 100644 src/.vuepress/styles/config.scss create mode 100644 src/.vuepress/styles/index.scss create mode 100644 src/.vuepress/styles/palette.scss create mode 100644 src/.vuepress/theme.ts create mode 100644 src/guides/index.md create mode 100644 src/problems/index.md create mode 100644 src/use/index.md create mode 100644 tsconfig.json diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..9599463 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,48 @@ + +name: 部署文档 + +on: + push: + branches: + - main + +permissions: + contents: write + +jobs: + deploy-gh-pages: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + # 如果你文档需要 Git 子模块,取消注释下一行 + # submodules: true + + + + - name: 设置 Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: 安装依赖 + run: | + corepack enable + npm ci + + - name: 构建文档 + env: + NODE_OPTIONS: --max_old_space_size=8192 + run: |- + npm run docs:build + > src/.vuepress/dist/.nojekyll + + - name: 部署文档 + uses: JamesIves/github-pages-deploy-action@v4 + with: + # 部署文档 + branch: gh-pages + folder: src/.vuepress/dist diff --git a/.gitignore b/.gitignore index f959f57..411fb0d 100755 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,5 @@ -pids -logs -node_modules -npm-debug.log -coverage/ -run -dist -.DS_Store -.nyc_output -.basement -config.local.js -basement_dist -.vercel + +node_modules/ +src/.vuepress/.cache/ +src/.vuepress/.temp/ +src/.vuepress/dist/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0bdea49 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4773 @@ +{ + "name": "openfrp-docs", + "version": "1.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "openfrp-docs", + "version": "1.1.0", + "license": "GPL3/0", + "devDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.14", + "vue": "^3.4.31", + "vuepress": "2.0.0-rc.14", + "vuepress-theme-hope": "2.0.0-rc.52" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.2.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", + "dev": true + }, + "node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "dev": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } + }, + "node_modules/@mdit-vue/plugin-component": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/plugin-component/-/plugin-component-2.1.3.tgz", + "integrity": "sha512-9AG17beCgpEw/4ldo/M6Y/1Rh4E1bqMmr/rCkWKmCAxy9tJz3lzY7HQJanyHMJufwsb3WL5Lp7Om/aPcQTZ9SA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-frontmatter": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-2.1.3.tgz", + "integrity": "sha512-KxsSCUVBEmn6sJcchSTiI5v9bWaoRxe68RBYRDGcSEY1GTnfQ5gQPMIsM48P4q1luLEIWurVGGrRu7u93//LDQ==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.1.1", + "gray-matter": "^4.0.3", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-headers": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/plugin-headers/-/plugin-headers-2.1.3.tgz", + "integrity": "sha512-AcL7a7LHQR3ISINhfjGJNE/bHyM0dcl6MYm1Sr//zF7ZgokPGwD/HhD7TzwmrKA9YNYCcO9P3QmF/RN9XyA6CA==", + "dev": true, + "dependencies": { + "@mdit-vue/shared": "2.1.3", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.1.1", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-sfc": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/plugin-sfc/-/plugin-sfc-2.1.3.tgz", + "integrity": "sha512-Ezl0dNvQNS639Yl4siXm+cnWtQvlqHrg+u+lnau/OHpj9Xh3LVap/BSQVugKIV37eR13jXXYf3VaAOP1fXPN+w==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.1.1", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-title": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/plugin-title/-/plugin-title-2.1.3.tgz", + "integrity": "sha512-XWVOQoZqczoN97xCDrnQicmXKoqwOjIymIm9HQnRXhHnYKOgJPW1CxSGhkcOGzvDU1v0mD/adojVyyj/s6ggWw==", + "dev": true, + "dependencies": { + "@mdit-vue/shared": "2.1.3", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.1.1", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-toc": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/plugin-toc/-/plugin-toc-2.1.3.tgz", + "integrity": "sha512-41Q+iXpLHZt0zJdApVwoVt7WF6za/xUjtjEPf90Z3KLzQO01TXsv48Xp9BsrFHPcPcm8tiZ0+O1/ICJO80V/MQ==", + "dev": true, + "dependencies": { + "@mdit-vue/shared": "2.1.3", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.1.1", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/shared": { + "version": "2.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/shared/-/shared-2.1.3.tgz", + "integrity": "sha512-27YI8b0VVZsAlNwaWoaOCWbr4eL8B04HxiYk/y2ktblO/nMcOEOLt4p0RjuobvdyUyjHvGOS09RKhq7qHm1CHQ==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.1.1", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/types": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit-vue/types/-/types-2.1.0.tgz", + "integrity": "sha512-TMBB/BQWVvwtpBdWD75rkZx4ZphQ6MN0O4QB2Bc0oI5PC2uE57QerhNxdRZ7cvBHE2iY2C+BUNUziCfJbjIRRA==", + "dev": true + }, + "node_modules/@mdit/plugin-alert": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-alert/-/plugin-alert-0.12.0.tgz", + "integrity": "sha512-4OyGK1PZrJbmEF/kS6GKmmG1nlN5h/CyIPZV8lRgnlWLFB37JiEz3EHusPAXAoMtw7VGNFaIcl7OT/I5yyz1JQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-align": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-align/-/plugin-align-0.12.0.tgz", + "integrity": "sha512-rvA+xzaVrlsr44s7XD/xadO3lF0QYWCbeSrOS2dhOroNCIOy4RotVP/1tQPr84eqm4oXcxXF0cbjFuwUgE1jYw==", + "dev": true, + "dependencies": { + "@mdit/plugin-container": "0.12.0", + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-attrs": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-attrs/-/plugin-attrs-0.12.0.tgz", + "integrity": "sha512-J0MBwBq958lBtdIcEo02mUIO4ubl2YK+bY799T2SusrLTf3FZsq8+d/OiLTUtovfxaphD7F6yqo8M61AiOpq+w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-container": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-container/-/plugin-container-0.12.0.tgz", + "integrity": "sha512-61bWK1ek6Rn4o12/BIKTWgGU0miB9ENcXE19H5D4DRhwG5+4+0zp2U6hRLf/mE73+mRYin7iKVzcwwEsqs+u8w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-demo": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-demo/-/plugin-demo-0.12.0.tgz", + "integrity": "sha512-+KDUOgcvnMtBN/uYWlhIFuWkTJexuxstq8ERy9q7vOiu8Go85qCb27h0RSToKBTmmGy+XqfU2EdJclYPWBupJQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-figure": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-figure/-/plugin-figure-0.12.0.tgz", + "integrity": "sha512-3nfcGI+uM0f6AqHZrEr8kSMBI6T2+fKKQXtCbvWQqQ+P3iGgf34Ay2eAtuMDcDGqyfNuR6e8aLoOeY2QWuEynA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-footnote": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-footnote/-/plugin-footnote-0.12.0.tgz", + "integrity": "sha512-9B+bJdMndCPoA9De9bxRm4/fyz02PHRcttOyuyPJ3G+wCAgIN1c/7CB8ViT1YJuECUjLogJQ/rrgqh7f0LTqLQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit/plugin-img-lazyload": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-img-lazyload/-/plugin-img-lazyload-0.12.0.tgz", + "integrity": "sha512-6R42ieXzwkB5BKKZi+ZefqeP/fBG5qo7Sqtl72ewSVqEQ30bgxpk6nkrPI2orRob4tb6z0F/c+R8h6PW5MkTOw==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-img-mark": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-img-mark/-/plugin-img-mark-0.12.0.tgz", + "integrity": "sha512-HkIUwlTg/xPsBi4PG+5dsMnsb7wdiJzELSCEUfdAJTg55nksonHfyV2pFpr87MML4nuZlZK9JHt+Bm2BBDSVSw==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-img-size": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-img-size/-/plugin-img-size-0.12.0.tgz", + "integrity": "sha512-fCcF5gc+ba6gQ5ebrKuI8bK/gFbj8mbeN45FHmBsFDFsfTHa0Xij2v8iok0nP8YEIVj71y8XYojsqCWs6avong==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-include": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-include/-/plugin-include-0.12.0.tgz", + "integrity": "sha512-8pnmp7s1TjbtoBIa/YhYpEivOpeVSyhkQoQrGq1UoaEcTbXqmFwShGkAW3zUYZVFYTl74PgL/UqJnrUojegJQg==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1", + "upath": "^2.0.1" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-katex-slim": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-katex-slim/-/plugin-katex-slim-0.12.0.tgz", + "integrity": "sha512-s2MJGXFZT7u8IUTmy6K1rxxAdYRmGggu0m860siyUrThL112xLN9r3jmXZ83epgi4UA/gLkRDAU5vF6R2JtyjQ==", + "dev": true, + "dependencies": { + "@mdit/plugin-tex": "0.12.0", + "@types/katex": "^0.16.7", + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "katex": "^0.16.9", + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "katex": { + "optional": true + }, + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-mark": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-mark/-/plugin-mark-0.12.0.tgz", + "integrity": "sha512-BDFwbV/tbgUGL8KF2ymYNLEXT2KNBLe8D0rshDrbB4Iko1U2DywACQkmaUbYBJ1VCn7/dff35at9fWrm3QjrwQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-mathjax-slim": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-mathjax-slim/-/plugin-mathjax-slim-0.12.0.tgz", + "integrity": "sha512-bLM+JnCTN/3XiyKb64Yhpx014VYLfHBexua4n92cUyoKR9g3waB0loF1WMlg6GdyCTc7OvrUSceNjwWj3YRogg==", + "dev": true, + "dependencies": { + "@mdit/plugin-tex": "0.12.0", + "@types/markdown-it": "^14.1.1", + "upath": "^2.0.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0", + "mathjax-full": "^3.2.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + }, + "mathjax-full": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-plantuml": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-plantuml/-/plugin-plantuml-0.12.0.tgz", + "integrity": "sha512-m1pk6PA9+kWUs8kylLqjnQ7Lex68x3c4Ato8zAh+omkhugfWzuQXfFiXRiJ9C7wkdqHoJx/E5XobP3HJnhCpoA==", + "dev": true, + "dependencies": { + "@mdit/plugin-uml": "0.12.0", + "@types/markdown-it": "^14.1.1" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-spoiler": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-spoiler/-/plugin-spoiler-0.12.0.tgz", + "integrity": "sha512-7yu+Gz000O0OxGnGYOoj77Am3WgH4GwzOvwCp7tPLexkJwTve8MyT9In/NEPFaRw8fmgXwthC0gKq4Ubh1+8DA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-stylize": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-stylize/-/plugin-stylize-0.12.0.tgz", + "integrity": "sha512-5bzZvmjEpGTdwBax9jaDbCBhD1snEx6uTHVUG9HD/L5koKrL86+ox9E5FGeiMiD1dtxeMgL+WqBzV44nRE9ZPg==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-sub": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-sub/-/plugin-sub-0.12.0.tgz", + "integrity": "sha512-27kKkSVkymc+2RNc5XOYkeXip5PgHZPUnHpxUvkpnairLwyHsXb8/gzr9zd5arVkip86rcdy9LIvnF7zO0dNVQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-sup": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-sup/-/plugin-sup-0.12.0.tgz", + "integrity": "sha512-3bEDW5/y1UDVU8LVbFsqUvNcMW6orp16uCdRGYCNZ3/IeK7Qj1/9a3wfhScIoI8xRUE6M3JLv41sGBFXLHwi1w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tab": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-tab/-/plugin-tab-0.12.0.tgz", + "integrity": "sha512-ZDTEDxHoekcFA5Al+NLizn8Nf0kj6ABkNBAc/VxbQoVQdjZNQtGY2dOPeWW0I96Rao+Aw+IpYRCLFIfb/KtExw==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tasklist": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-tasklist/-/plugin-tasklist-0.12.0.tgz", + "integrity": "sha512-MPmuLJrqHYR2xI7ST9Xtw/xj+6Xoq7kUvcGuXWdMMNT11DcU1KppkR8QBHov437NFYh6aGyjrHUVeM4T5Ls8yg==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tex": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-tex/-/plugin-tex-0.12.0.tgz", + "integrity": "sha512-ejeSgSeZvcI5P4hFFQ4q5pHrZBGO2fQWVGm6dZ3BhX4ldoV8LjCIzkcMMXhrhSOVjwHnqmF6xOh9EvI0jzak1w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-uml": { + "version": "0.12.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@mdit/plugin-uml/-/plugin-uml-0.12.0.tgz", + "integrity": "sha512-EfVMmq0CwLJcssxhkvGS2ESenNNEMeK04j702Z9v3am1M9DdEj6zHTrHQd9tA0jNVuFY8ZlmMgDfkkG5k6Rm3Q==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true + }, + "node_modules/@shikijs/core": { + "version": "1.13.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@shikijs/core/-/core-1.13.0.tgz", + "integrity": "sha512-Mj5NVfbAXcD1GnwOTSPl8hBn/T8UDpfFQTptp+p41n/CbUcJtOq98WaRD7Lz3hCglYotUTHUWtzu3JhK6XlkAA==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/transformers": { + "version": "1.13.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@shikijs/transformers/-/transformers-1.13.0.tgz", + "integrity": "sha512-51aLIT6a93rVGoTxl2+p6hb7ILbTA4p/unoibEAjnPMzHto4cqxhuHyDVgtQur5ANpGsL3ihSGKaZDrpcWH8vQ==", + "dev": true, + "dependencies": { + "shiki": "1.13.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@stackblitz/sdk": { + "version": "1.11.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@stackblitz/sdk/-/sdk-1.11.0.tgz", + "integrity": "sha512-DFQGANNkEZRzFk1/rDP6TcFdM82ycHE+zfl9C/M/jXlH68jiqHWHFMQURLELoD8koxvu/eW5uhg94NSAZlYrUQ==", + "dev": true + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, + "node_modules/@types/hash-sum": { + "version": "1.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==", + "dev": true + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "dev": true + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/markdown-it-emoji": { + "version": "3.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/markdown-it-emoji/-/markdown-it-emoji-3.0.1.tgz", + "integrity": "sha512-cz1j8R35XivBqq9mwnsrP2fsz2yicLhB8+PDtuVkKOExwEdsVBNI+ROL3sbhtR5occRZ66vT0QnwFZCqdjf3pA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^14" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "22.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "dev": true, + "dependencies": { + "undici-types": "~6.18.2" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz", + "integrity": "sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-core/-/compiler-core-3.4.37.tgz", + "integrity": "sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.37", + "entities": "^5.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-dom/-/compiler-dom-3.4.37.tgz", + "integrity": "sha512-rIiSmL3YrntvgYV84rekAtU/xfogMUJIclUMeIKEtVBFngOL3IeZHhsH3UaFEgB5iFGpj6IW+8YuM/2Up+vVag==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.37", + "@vue/shared": "3.4.37" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-sfc/-/compiler-sfc-3.4.37.tgz", + "integrity": "sha512-vCfetdas40Wk9aK/WWf8XcVESffsbNkBQwS5t13Y/PcfqKfIwJX2gF+82th6dOpnpbptNMlMjAny80li7TaCIg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.37", + "@vue/compiler-dom": "3.4.37", + "@vue/compiler-ssr": "3.4.37", + "@vue/shared": "3.4.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.40", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/compiler-ssr/-/compiler-ssr-3.4.37.tgz", + "integrity": "sha512-TyAgYBWrHlFrt4qpdACh8e9Ms6C/AZQ6A6xLJaWrCL8GCX5DxMzxyeFAEMfU/VFr4tylHm+a2NpfJpcd7+20XA==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.37", + "@vue/shared": "3.4.37" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", + "dev": true + }, + "node_modules/@vue/reactivity": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/reactivity/-/reactivity-3.4.37.tgz", + "integrity": "sha512-UmdKXGx0BZ5kkxPqQr3PK3tElz6adTey4307NzZ3whZu19i5VavYal7u2FfOmAzlcDVgE8+X0HZ2LxLb/jgbYw==", + "dev": true, + "dependencies": { + "@vue/shared": "3.4.37" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/runtime-core/-/runtime-core-3.4.37.tgz", + "integrity": "sha512-MNjrVoLV/sirHZoD7QAilU1Ifs7m/KJv4/84QVbE6nyAZGQNVOa1HGxaOzp9YqCG+GpLt1hNDC4RbH+KtanV7w==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.4.37", + "@vue/shared": "3.4.37" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/runtime-dom/-/runtime-dom-3.4.37.tgz", + "integrity": "sha512-Mg2EwgGZqtwKrqdL/FKMF2NEaOHuH+Ks9TQn3DHKyX//hQTYOun+7Tqp1eo0P4Ds+SjltZshOSRq6VsU0baaNg==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.4.37", + "@vue/runtime-core": "3.4.37", + "@vue/shared": "3.4.37", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/server-renderer/-/server-renderer-3.4.37.tgz", + "integrity": "sha512-jZ5FAHDR2KBq2FsRUJW6GKDOAG9lUTX8aBEGq4Vf6B/35I9fPce66BornuwmqmKgfiSlecwuOb6oeoamYMohkg==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.4.37", + "@vue/shared": "3.4.37" + }, + "peerDependencies": { + "vue": "3.4.37" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vue/shared/-/shared-3.4.37.tgz", + "integrity": "sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==", + "dev": true + }, + "node_modules/@vuepress/bundler-vite": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.14.tgz", + "integrity": "sha512-kttbowYITMCX3ztz78Qb6bMfXRv/GEpNu+nALksu7j/QJQ0gOzI2is68PatbmzZRWOufVsf1Zf0A8BwolmVcXA==", + "dev": true, + "dependencies": { + "@vitejs/plugin-vue": "^5.0.5", + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "autoprefixer": "^10.4.19", + "connect-history-api-fallback": "^2.0.0", + "postcss": "^8.4.38", + "postcss-load-config": "^6.0.1", + "rollup": "^4.18.0", + "vite": "~5.3.1", + "vue": "^3.4.29", + "vue-router": "^4.3.3" + } + }, + "node_modules/@vuepress/cli": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/cli/-/cli-2.0.0-rc.14.tgz", + "integrity": "sha512-oYJX1nE6/ohF2tzUtpBAFxRr4MF2kdtab3+AQ897esXzrciQnE2LxPQZ8BUOn6Jb3XYW12FXDdkHrr82rN6XnQ==", + "dev": true, + "dependencies": { + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "envinfo": "^7.13.0", + "esbuild": "~0.21.5" + }, + "bin": { + "vuepress-cli": "bin/vuepress.js" + } + }, + "node_modules/@vuepress/client": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/client/-/client-2.0.0-rc.14.tgz", + "integrity": "sha512-ULwxOiWoUi15HWQ6qH60gWjxSXB0797uExCUa4HgHV/8SpIqv4SHFn6jqjo7qCzOxuTqj1RT47JH3oWfUF4XPA==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "@vuepress/shared": "2.0.0-rc.14", + "vue": "^3.4.29", + "vue-router": "^4.3.3" + } + }, + "node_modules/@vuepress/core": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/core/-/core-2.0.0-rc.14.tgz", + "integrity": "sha512-Ly3fypjXGUgPzjfbXKJeyd59jxJgXkhxhWAGkH/rRyQeV8Nr7Wo1ah3H1MeGhlCRGH1T9Yd3Bz9W7QMoyWFfmg==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/markdown": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "vue": "^3.4.29" + } + }, + "node_modules/@vuepress/helper": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/helper/-/helper-2.0.0-rc.39.tgz", + "integrity": "sha512-X9KiTUjtrT6gxrDUDJhiB5+/kO4via8yzudowOPu55p/MKtPbShlJw/zEDivH3P4nD1LFWnjWWuEBgZLFymLFQ==", + "dev": true, + "dependencies": { + "@vue/shared": "^3.4.32", + "cheerio": "1.0.0-rc.12", + "fflate": "^0.8.2", + "gray-matter": "^4.0.3", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/highlighter-helper": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/highlighter-helper/-/highlighter-helper-2.0.0-rc.39.tgz", + "integrity": "sha512-da4wob8vmrB8DGsBsJCF1ox4E50/9Yc3F9CkNvuH/BS/Touk5KabAw36dCDW/420jTrm5UjRgwfVzfkakcaRIQ==", + "dev": true, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/markdown": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/markdown/-/markdown-2.0.0-rc.14.tgz", + "integrity": "sha512-9xr693gkp71qwEbQLxpo1ybhJ+lA2k5SiuFUgqqrmR2a8CSL3gcmKEGM+y7GMnHvL63U2dYlc9pUOtJ5rG9O0Q==", + "dev": true, + "dependencies": { + "@mdit-vue/plugin-component": "^2.1.3", + "@mdit-vue/plugin-frontmatter": "^2.1.3", + "@mdit-vue/plugin-headers": "^2.1.3", + "@mdit-vue/plugin-sfc": "^2.1.3", + "@mdit-vue/plugin-title": "^2.1.3", + "@mdit-vue/plugin-toc": "^2.1.3", + "@mdit-vue/shared": "^2.1.3", + "@mdit-vue/types": "^2.1.0", + "@types/markdown-it": "^14.1.1", + "@types/markdown-it-emoji": "^3.0.1", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^9.0.1", + "markdown-it-emoji": "^3.0.0", + "mdurl": "^2.0.0" + } + }, + "node_modules/@vuepress/plugin-active-header-links": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.39.tgz", + "integrity": "sha512-Nm4srR+/kEoawFikbpXdJmi3dvXKU4RcsuOW6d0Aa6JWdiB8sX9PbCWbJD+ZWvAa8o+ySBBHFNd4exTzfCtBlw==", + "dev": true, + "dependencies": { + "@vueuse/core": "^10.11.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-back-to-top": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.39.tgz", + "integrity": "sha512-rG9HVgvpxURGfDZeuVRCjXLFHIEqPh1VPqkQpldh1zpDbB4+V2xqq73TYfpjFBRekN8lJZ0JO3BJ8f7p9t4wLg==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-blog": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-blog/-/plugin-blog-2.0.0-rc.39.tgz", + "integrity": "sha512-YHxsZxlIeJGCcOdEm4c4lQoNHx358Zxu/0tvRC/jEwXgyZUnqSpbMd3FLJ9Yl7CPsp18PMLIN7d8YQOetR17zA==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "chokidar": "^3.6.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-catalog": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-catalog/-/plugin-catalog-2.0.0-rc.39.tgz", + "integrity": "sha512-WAxCpDAZO4Pzozh6l5zPk/XYXgxAMq96PksgrVjlWsp1c4UKM7QiUMAXKH0UfbgcQhtLJoWQ37F8EZnJAMEXDQ==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-comment": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-comment/-/plugin-comment-2.0.0-rc.39.tgz", + "integrity": "sha512-/oCS+0wH/MtE4c1HUKlqH/tj70oXSz/tfR1hsHj8F8wiZ+IVJxexvtzMKk0vdRmYnH4nqeZh6dg5ggSJjrLEZQ==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "giscus": "^1.5.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "@waline/client": "^3.1.0", + "artalk": "^2.8.7", + "twikoo": "^1.5.0", + "vuepress": "2.0.0-rc.14" + }, + "peerDependenciesMeta": { + "@waline/client": { + "optional": true + }, + "artalk": { + "optional": true + }, + "twikoo": { + "optional": true + } + } + }, + "node_modules/@vuepress/plugin-copy-code": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.39.tgz", + "integrity": "sha512-Udd73yfUvjCQadE+QRXCC+Rw2zxRNsBIcpDcFMzs3Vz93LbZxbG0cv6pO4rdKb3OrFH9M0JTawoWyANZspt3QQ==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-copyright": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-copyright/-/plugin-copyright-2.0.0-rc.39.tgz", + "integrity": "sha512-webOz7vcBydcpqRdLMQYtykEGD5NqZ8ykoZ6dLF9Yk7LteUgsSVUSMm7cJ2vxG2dD/SeH5dPlsr02lH+PH0VbQ==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-git": { + "version": "2.0.0-rc.38", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.38.tgz", + "integrity": "sha512-dRJiZ5PVuhhyu+R2BZOlyeqgxVikUUh2Vf6RNVN2DNWv4VHdYybFQuQ+kYDpldYyzoP8932aFRV0d2ocpvxEug==", + "dev": true, + "dependencies": { + "execa": "^9.3.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-links-check": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.39.tgz", + "integrity": "sha512-2lQHIMO49jYcJnEWHf7yoXnuFUrAQC+LfzSvaeCMUzshEIDTJXy96LSCQCjRWwW02GL65qS9ODfr6b8DDuXMgg==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-notice": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-notice/-/plugin-notice-2.0.0-rc.39.tgz", + "integrity": "sha512-GNnNIxZJBt2q8XAtgrpCxovEB0vRXjrCccu4TBjPnSimjreo/i7uaHkxDyCb3O9tNQGEd6OaObOkHFBJ7vXaTg==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-nprogress": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.39.tgz", + "integrity": "sha512-HH+GuR2sxzVQ5uIQxDHnQF5RevjefviLuAbB1UH4u1R6DRUDd9+DrqXm4T/0LJJWo4OCPO4DLzPpmRESjuZifw==", + "dev": true, + "dependencies": { + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-photo-swipe": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-photo-swipe/-/plugin-photo-swipe-2.0.0-rc.39.tgz", + "integrity": "sha512-MS9xlTAEd7/nJHSPphS2diyvyRzuXRk0zYVlBSDcv8ge3X9gxkMhEcOoRfU6PymxMuovJKBIeTE4mvZQ9Wl9eQ==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "photoswipe": "^5.4.4", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-reading-time": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-reading-time/-/plugin-reading-time-2.0.0-rc.39.tgz", + "integrity": "sha512-ChfVi6be4hAXd0XIgyfdNGayIQTzRKFZB2JFWB12+TYBJr6TQ7j6tmL7FWOiYPXUPetVPm6CfuY+mdiaBq2vqg==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-rtl": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-rtl/-/plugin-rtl-2.0.0-rc.39.tgz", + "integrity": "sha512-1ndKbzpGxJ6qLIOjTeZkAcsqq4eJ54hUrhraOmv21UneVIVDSAt80VeKnSwl8p269T94AxqNqfLsnnaCQ5uvRw==", + "dev": true, + "dependencies": { + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-sass-palette": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-sass-palette/-/plugin-sass-palette-2.0.0-rc.39.tgz", + "integrity": "sha512-jBo/4Lz7H9pa7TCqMSFiEyZRowsLCOVHj+yrp0PE1fAwx+qTm9dNSDKauWIKGplFGQqf4BdKITE7hPDoBePiDw==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "chokidar": "^3.6.0", + "sass": "^1.77.8" + }, + "peerDependencies": { + "sass-loader": "^14.0.0", + "vuepress": "2.0.0-rc.14" + }, + "peerDependenciesMeta": { + "sass-loader": { + "optional": true + } + } + }, + "node_modules/@vuepress/plugin-seo": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.39.tgz", + "integrity": "sha512-n6w3ifBU2HK3b6twxJQiiv7vZxjCi0DCgW3Ellp7pNI/uZU6PnfkZ+UjtlHieScThe7A8Q+mxW/T7CyWC6/8cw==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-shiki": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-shiki/-/plugin-shiki-2.0.0-rc.39.tgz", + "integrity": "sha512-QnD8VhOqpkgLCnwLGzcyPY8eC1dam2Navud9DyisLtqWOJ6zmjFZEE1O5elUjh6cPUtarN8bQQ/zn1M1ebRURA==", + "dev": true, + "dependencies": { + "@shikijs/transformers": "^1.10.3", + "@vuepress/helper": "2.0.0-rc.39", + "@vuepress/highlighter-helper": "2.0.0-rc.39", + "nanoid": "^5.0.7", + "shiki": "^1.10.3" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-shiki/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@vuepress/plugin-sitemap": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.39.tgz", + "integrity": "sha512-/dgI8JK4oFaFG3Dmw34cwY5J/gYXNWto7RwR7H8wcK10cWuoT2tNV56BeixWiaqsKj1BZjv2GMwZTLpPgYxgZw==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "sitemap": "^8.0.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-theme-data": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.39.tgz", + "integrity": "sha512-fNwaPpqM46gI23n5d4UrwC8Y+JRDi7mKs1sjawqKU9PdJpUQKd/2lOSOSx/farLqxiswHTQdZtLCxWjvWlcZRw==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue": "^3.4.32" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-watermark": { + "version": "2.0.0-rc.39", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/plugin-watermark/-/plugin-watermark-2.0.0-rc.39.tgz", + "integrity": "sha512-16BZnwIZa+AEBcnXI59udHX04/VLiCwrdy8wsdBf3vy5co8/PPyG3iDC1Tlwbkotsuz/+J23KG7MjN4Fr9dFEQ==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "vue": "^3.4.32", + "watermark-js-plus": "^1.5.2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/shared": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/shared/-/shared-2.0.0-rc.14.tgz", + "integrity": "sha512-VDDnPpz4x1Q07richcVRGbc4qc2RG/6bKoEYSImofTFzvdmHer538ouv8kD2SNU10UrSOpxxUiphnhlhNIe03A==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "^2.1.0" + } + }, + "node_modules/@vuepress/utils": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vuepress/utils/-/utils-2.0.0-rc.14.tgz", + "integrity": "sha512-1h/5qcKBeIhIg6SZM2IoZVOaIdFSeQ1CdEWadqQWy1uwupEeVrU3QPkjFyn0vUt0O/EuuVqQcLLC8OuS/wldNw==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.12", + "@types/fs-extra": "^11.0.4", + "@types/hash-sum": "^1.0.2", + "@vuepress/shared": "2.0.0-rc.14", + "debug": "^4.3.5", + "fs-extra": "^11.2.0", + "globby": "^14.0.1", + "hash-sum": "^2.0.0", + "ora": "^8.0.1", + "picocolors": "^1.0.1", + "upath": "^2.0.1" + } + }, + "node_modules/@vueuse/core": { + "version": "10.11.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vueuse/core/-/core-10.11.1.tgz", + "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "dev": true, + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://mirrors.cloud.tencent.com/npm/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.11.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vueuse/metadata/-/metadata-10.11.1.tgz", + "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.11.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/@vueuse/shared/-/shared-10.11.1.tgz", + "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "dev": true, + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://mirrors.cloud.tencent.com/npm/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://mirrors.cloud.tencent.com/npm/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://mirrors.cloud.tencent.com/npm/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balloon-css": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/balloon-css/-/balloon-css-1.2.0.tgz", + "integrity": "sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==", + "dev": true + }, + "node_modules/bcrypt-ts": { + "version": "5.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/bcrypt-ts/-/bcrypt-ts-5.0.2.tgz", + "integrity": "sha512-gDwQ5784AkkfhHACh3jGcg1hUubyZyeq9AtVd5gXkcyHGVOC+mORjRIHSj+fHfqwY5vxwyBLXQpcfk8MpK0ROg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001651", + "resolved": "https://mirrors.cloud.tencent.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://mirrors.cloud.tencent.com/npm/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-codepen": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/create-codepen/-/create-codepen-2.0.0.tgz", + "integrity": "sha512-ehJ0Zw5RSV2G4+/azUb7vEZWRSA/K9cW7HDock1Y9ViDexkgSJUZJRcObdw/YAWeXKjreEQV9l/igNSsJ1yw5A==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/dayjs": { + "version": "1.11.12", + "resolved": "https://mirrors.cloud.tencent.com/npm/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://mirrors.cloud.tencent.com/npm/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.5.7.tgz", + "integrity": "sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/execa": { + "version": "9.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/execa/-/execa-9.3.1.tgz", + "integrity": "sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/giscus": { + "version": "1.5.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/giscus/-/giscus-1.5.0.tgz", + "integrity": "sha512-t3LL0qbSO3JXq3uyQeKpF5CegstGfKX/0gI6eDe1cmnI7D56R7j52yLdzw4pdKrg3VnufwCgCM3FDz7G1Qr6lg==", + "dev": true, + "dependencies": { + "lit": "^3.1.2" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/human-signals": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lit": { + "version": "3.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/lit/-/lit-3.2.0.tgz", + "integrity": "sha512-s6tI33Lf6VpDu7u4YqsSX78D28bYQulM+VAzsGch4fx2H0eLZnJsUBsPWmGYSGoKDNbjtRv02rio1o+UdPVwvw==", + "dev": true, + "dependencies": { + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.1.0", + "lit-html": "^3.2.0" + } + }, + "node_modules/lit-element": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/lit-element/-/lit-element-4.1.0.tgz", + "integrity": "sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww==", + "dev": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.2.0" + } + }, + "node_modules/lit-html": { + "version": "3.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/lit-html/-/lit-html-3.2.0.tgz", + "integrity": "sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://mirrors.cloud.tencent.com/npm/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "9.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/markdown-it-anchor/-/markdown-it-anchor-9.0.1.tgz", + "integrity": "sha512-cBt7aAzmkfX8X7FqAe8EBryiKmToXgMQEEMqkXzWCm0toDtfDYIGboKeTKd8cpNJArJtutrf+977wFJTsvNGmQ==", + "dev": true, + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/markdown-it-emoji": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/markdown-it-emoji/-/markdown-it-emoji-3.0.0.tgz", + "integrity": "sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==", + "dev": true + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://mirrors.cloud.tencent.com/npm/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "8.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ora/-/ora-8.0.1.tgz", + "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", + "dev": true, + "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.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/photoswipe": { + "version": "5.4.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/photoswipe/-/photoswipe-5.4.4.tgz", + "integrity": "sha512-WNFHoKrkZNnvFFhbHL93WDkW3ifwVOXSW3w1UuZZelSmgXpIGiZSNlZJq37rR8YejqME2rHs9EhH9ZvlvFH2NA==", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-ms": { + "version": "9.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "dev": true, + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "dev": true, + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://mirrors.cloud.tencent.com/npm/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.20.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://mirrors.cloud.tencent.com/npm/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "1.13.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/shiki/-/shiki-1.13.0.tgz", + "integrity": "sha512-e0dWfnONbEv6xl7FJy3XIhsVHQ/65XHDZl92+6H9+4xWjfdo7pmkqG7Kg47KWtDiEtzM5Z+oEfb4vtRvoZ/X9w==", + "dev": true, + "dependencies": { + "@shikijs/core": "1.13.0", + "@types/hast": "^3.0.4" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://mirrors.cloud.tencent.com/npm/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sitemap": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/sitemap/-/sitemap-8.0.0.tgz", + "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", + "dev": true, + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://mirrors.cloud.tencent.com/npm/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true + }, + "node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "5.3.5", + "resolved": "https://mirrors.cloud.tencent.com/npm/vite/-/vite-5.3.5.tgz", + "integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.4.37", + "resolved": "https://mirrors.cloud.tencent.com/npm/vue/-/vue-3.4.37.tgz", + "integrity": "sha512-3vXvNfkKTBsSJ7JP+LyR7GBuwQuckbWvuwAid3xbqK9ppsKt/DUvfqgZ48fgOLEfpy1IacL5f8QhUVl77RaI7A==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.37", + "@vue/compiler-sfc": "3.4.37", + "@vue/runtime-dom": "3.4.37", + "@vue/server-renderer": "3.4.37", + "@vue/shared": "3.4.37" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.4.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/vue-router/-/vue-router-4.4.3.tgz", + "integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vuepress": { + "version": "2.0.0-rc.14", + "resolved": "https://mirrors.cloud.tencent.com/npm/vuepress/-/vuepress-2.0.0-rc.14.tgz", + "integrity": "sha512-t902FYKFF2MavNQjm/I4gN8etl6iX4PETutu4c1Pt7qQjXF6Hp2eurZaW32O5/TaYWsbVG757FwKodRLj9GDng==", + "dev": true, + "dependencies": { + "@vuepress/cli": "2.0.0-rc.14", + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/markdown": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "vue": "^3.4.29" + }, + "bin": { + "vuepress": "bin/vuepress.js", + "vuepress-vite": "bin/vuepress-vite.js", + "vuepress-webpack": "bin/vuepress-webpack.js" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.14", + "@vuepress/bundler-webpack": "2.0.0-rc.14", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "@vuepress/bundler-vite": { + "optional": true + }, + "@vuepress/bundler-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-components": { + "version": "2.0.0-rc.52", + "resolved": "https://mirrors.cloud.tencent.com/npm/vuepress-plugin-components/-/vuepress-plugin-components-2.0.0-rc.52.tgz", + "integrity": "sha512-mQRi0XzdUD025ewjBXlhlh948ReOcohMlBEdkxQVNZaLa5OM2mtZm8TJvN1MkSKeiTMZjtzARO1AJNGyhZWFpw==", + "dev": true, + "dependencies": { + "@stackblitz/sdk": "^1.11.0", + "@vuepress/helper": "2.0.0-rc.39", + "@vuepress/plugin-sass-palette": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "balloon-css": "^1.2.0", + "create-codepen": "^2.0.0", + "qrcode": "^1.5.3", + "vue": "^3.4.33", + "vuepress-shared": "2.0.0-rc.52" + }, + "engines": { + "node": ">=18.19.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "artplayer": "^5.0.0", + "dashjs": "4.7.4", + "hls.js": "^1.4.12", + "mpegts.js": "^1.7.3", + "sass-loader": "^14.0.0", + "vidstack": "^1.11.21", + "vuepress": "2.0.0-rc.14" + }, + "peerDependenciesMeta": { + "artplayer": { + "optional": true + }, + "dashjs": { + "optional": true + }, + "hls.js": { + "optional": true + }, + "mpegts.js": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "vidstack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-md-enhance": { + "version": "2.0.0-rc.52", + "resolved": "https://mirrors.cloud.tencent.com/npm/vuepress-plugin-md-enhance/-/vuepress-plugin-md-enhance-2.0.0-rc.52.tgz", + "integrity": "sha512-4lED2FSelBbtBVE5Hon9FQpCgmG1xQbi3+rFrj/Aa1VF+8PTjqFdG4NkdRTx94beOeu/A5jvWp5TFWMbaXD7hA==", + "dev": true, + "dependencies": { + "@mdit/plugin-alert": "^0.12.0", + "@mdit/plugin-align": "^0.12.0", + "@mdit/plugin-attrs": "^0.12.0", + "@mdit/plugin-container": "^0.12.0", + "@mdit/plugin-demo": "^0.12.0", + "@mdit/plugin-figure": "^0.12.0", + "@mdit/plugin-footnote": "^0.12.0", + "@mdit/plugin-img-lazyload": "^0.12.0", + "@mdit/plugin-img-mark": "^0.12.0", + "@mdit/plugin-img-size": "^0.12.0", + "@mdit/plugin-include": "^0.12.0", + "@mdit/plugin-katex-slim": "^0.12.0", + "@mdit/plugin-mark": "^0.12.0", + "@mdit/plugin-mathjax-slim": "^0.12.0", + "@mdit/plugin-plantuml": "^0.12.0", + "@mdit/plugin-spoiler": "^0.12.0", + "@mdit/plugin-stylize": "^0.12.0", + "@mdit/plugin-sub": "^0.12.0", + "@mdit/plugin-sup": "^0.12.0", + "@mdit/plugin-tab": "^0.12.0", + "@mdit/plugin-tasklist": "^0.12.0", + "@mdit/plugin-tex": "^0.12.0", + "@mdit/plugin-uml": "^0.12.0", + "@types/markdown-it": "^14.1.1", + "@vuepress/helper": "2.0.0-rc.39", + "@vuepress/plugin-sass-palette": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "balloon-css": "^1.2.0", + "js-yaml": "^4.1.0", + "vue": "^3.4.33", + "vuepress-shared": "2.0.0-rc.52" + }, + "engines": { + "node": ">=18.19.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "@types/reveal.js": "^5.0.0", + "@vue/repl": "^4.1.1", + "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.17.0", + "markmap-toolbar": "^0.17.0", + "markmap-view": "^0.17.0", + "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.14" + }, + "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 + } + } + }, + "node_modules/vuepress-plugin-md-enhance/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/vuepress-plugin-md-enhance/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/vuepress-shared": { + "version": "2.0.0-rc.52", + "resolved": "https://mirrors.cloud.tencent.com/npm/vuepress-shared/-/vuepress-shared-2.0.0-rc.52.tgz", + "integrity": "sha512-/Y5Qpl8ueqiggqFAyeJ9U2PhLyE7O5hl3r1k4vER/gKpaeYIqmPxf0ToJMFa3uc4luoNEe/9NJb6LJCrcPjFEA==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "cheerio": "1.0.0-rc.12", + "dayjs": "^1.11.12", + "execa": "^9.3.0", + "fflate": "^0.8.2", + "gray-matter": "^4.0.3", + "semver": "^7.6.3", + "vue": "^3.4.33" + }, + "engines": { + "node": ">=18.19.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/vuepress-theme-hope": { + "version": "2.0.0-rc.52", + "resolved": "https://mirrors.cloud.tencent.com/npm/vuepress-theme-hope/-/vuepress-theme-hope-2.0.0-rc.52.tgz", + "integrity": "sha512-QCfIxIQCFOUpJsOUEPi1QtLPUbKjA0alvjb5JJPMGvHqqP2HHOtSuTdoODqy1qWPUg2/GBR/OLjfpqs14joP+w==", + "dev": true, + "dependencies": { + "@vuepress/helper": "2.0.0-rc.39", + "@vuepress/plugin-active-header-links": "2.0.0-rc.39", + "@vuepress/plugin-back-to-top": "2.0.0-rc.39", + "@vuepress/plugin-blog": "2.0.0-rc.39", + "@vuepress/plugin-catalog": "2.0.0-rc.39", + "@vuepress/plugin-comment": "2.0.0-rc.39", + "@vuepress/plugin-copy-code": "2.0.0-rc.39", + "@vuepress/plugin-copyright": "2.0.0-rc.39", + "@vuepress/plugin-git": "2.0.0-rc.38", + "@vuepress/plugin-links-check": "2.0.0-rc.39", + "@vuepress/plugin-notice": "2.0.0-rc.39", + "@vuepress/plugin-nprogress": "2.0.0-rc.39", + "@vuepress/plugin-photo-swipe": "2.0.0-rc.39", + "@vuepress/plugin-reading-time": "2.0.0-rc.39", + "@vuepress/plugin-rtl": "2.0.0-rc.39", + "@vuepress/plugin-sass-palette": "2.0.0-rc.39", + "@vuepress/plugin-seo": "2.0.0-rc.39", + "@vuepress/plugin-shiki": "2.0.0-rc.39", + "@vuepress/plugin-sitemap": "2.0.0-rc.39", + "@vuepress/plugin-theme-data": "2.0.0-rc.39", + "@vuepress/plugin-watermark": "2.0.0-rc.39", + "@vueuse/core": "^10.11.0", + "balloon-css": "^1.2.0", + "bcrypt-ts": "^5.0.2", + "cheerio": "1.0.0-rc.12", + "chokidar": "^3.6.0", + "gray-matter": "^4.0.3", + "vue": "^3.4.33", + "vuepress-plugin-components": "2.0.0-rc.52", + "vuepress-plugin-md-enhance": "2.0.0-rc.52", + "vuepress-shared": "2.0.0-rc.52" + }, + "engines": { + "node": ">=18.19.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "@vuepress/plugin-docsearch": "2.0.0-rc.39", + "@vuepress/plugin-feed": "2.0.0-rc.39", + "@vuepress/plugin-prismjs": "2.0.0-rc.39", + "@vuepress/plugin-pwa": "2.0.0-rc.39", + "@vuepress/plugin-redirect": "2.0.0-rc.39", + "@vuepress/plugin-search": "2.0.0-rc.39", + "nodejs-jieba": "^0.1.2", + "sass-loader": "^14.0.0", + "vuepress": "2.0.0-rc.14", + "vuepress-plugin-search-pro": "2.0.0-rc.52" + }, + "peerDependenciesMeta": { + "@vuepress/plugin-docsearch": { + "optional": true + }, + "@vuepress/plugin-feed": { + "optional": true + }, + "@vuepress/plugin-prismjs": { + "optional": true + }, + "@vuepress/plugin-pwa": { + "optional": true + }, + "@vuepress/plugin-redirect": { + "optional": true + }, + "@vuepress/plugin-search": { + "optional": true + }, + "nodejs-jieba": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "vuepress-plugin-search-pro": { + "optional": true + } + } + }, + "node_modules/watermark-js-plus": { + "version": "1.5.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/watermark-js-plus/-/watermark-js-plus-1.5.2.tgz", + "integrity": "sha512-iqgSeAfwnCKNpClmyjl7rhj0SEbt8j+MqZc6C3YKY5xjMdxlRMIOcnYdBYBiznzILVyJ6YbwxD5OMajK1D+uCA==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://mirrors.cloud.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://mirrors.cloud.tencent.com/npm/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://mirrors.cloud.tencent.com/npm/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 0acdf70..32a4a9d 100755 --- a/package.json +++ b/package.json @@ -1,13 +1,19 @@ { - "private": true, + "name": "openfrp-docs", + "description": "OpenFRP官方文档", + "version": "1.1.0", + "license": "GPL3/0", + "type": "module", "scripts": { - "dev": "vuepress dev src", - "build": "vuepress build src" - }, - "engines": { - "node": ">=14.0.0 <18.0.0" + "build": "vuepress-vite build src", + "clean-dev": "vuepress-vite dev src --clean-cache", + "dev": "vuepress-vite dev src", + "update-package": "npx vp-update" }, "devDependencies": { - "vuepress": "1.9.7" + "@vuepress/bundler-vite": "2.0.0-rc.14", + "vue": "^3.4.31", + "vuepress": "2.0.0-rc.14", + "vuepress-theme-hope": "2.0.0-rc.52" } } diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts new file mode 100644 index 0000000..95cc256 --- /dev/null +++ b/src/.vuepress/config.ts @@ -0,0 +1,16 @@ +import { defineUserConfig } from "vuepress"; + +import theme from "./theme.js"; + +export default defineUserConfig({ + base: "/", + + lang: "zh-CN", + title: "OpenFRP 官方文档", + description: "解决使用问题,提供技术支持。", + + theme, + + // 和 PWA 一起启用 + // shouldPrefetch: false, +}); diff --git a/src/.vuepress/navbar.ts b/src/.vuepress/navbar.ts new file mode 100644 index 0000000..dfa8f0d --- /dev/null +++ b/src/.vuepress/navbar.ts @@ -0,0 +1,20 @@ +import { navbar } from "vuepress-theme-hope"; + +export default navbar([ + { + text: "首页", + link: "/" + }, + { + text: "使用指南", + link: "/use/" + }, + { + text: "配置指南", + link: "/guides/" + }, + { + text: "常见问题", + link: "/problems/" + }, +]); diff --git a/src/.vuepress/public/assets/icon/apple-icon-152.png b/src/.vuepress/public/assets/icon/apple-icon-152.png new file mode 100644 index 0000000000000000000000000000000000000000..434fcc3d5cdd2a03b4c4e41e915bf715f00127d7 GIT binary patch literal 3568 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 z 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/icon/chrome-512.png b/src/.vuepress/public/assets/icon/chrome-512.png new file mode 100644 index 0000000000000000000000000000000000000000..a146f00036ded70bfe9491b0df7c9cfd816efce0 GIT binary patch literal 13251 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/icon/guide-maskable.png b/src/.vuepress/public/assets/icon/guide-maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..75449b6098bce400671eb4eac78c4ef687f431b2 GIT binary patch literal 2270 zcmai0X*?8q7yi%I48ml&c1A^ZV=OVq5Lt?vu@%Z-Y*}iItt4YfrY_Q^x1>yryva_; zFe)|58nTsKj4cY2n!4gnAKwq}@1EZ|=lMO)`8{9Gmvb0L+#JP46-5C6;?7R?Bq4Hs z7fRSb!V}|hA;3dzU2OrV&K27TKnOV|$cf|%z*$WI=otX~6iW1Y0OGI!ERq4h-vU7H zbU`!GN;rT99(1$^TNiV?+Jp=l>+I@)oDr2nNUQpK;LC){th2qXN8;G>`|-ol$K=7v z7s*@0XQoRGtycOneus(rix=qqn9M38&1ftc%Y>LdBu-~@ne(5Sve!Mm7&Y=T;>{<@ z?8($3=p_t^aI^_tB^OpivlvCXd~rW(VQnnk``xK@`TLz8cz(CVb4c+T5WW9zc|@N6 z#HT=KTb6WO$Ax@H_z?8v`E7u!;-O2f7w+o*dlre~*MrAI`IXSaKj1Opx1d^+NCc%3 z?9xH#E&CuT$?n?pwpUPq{b^c%g3)d23~paKvu;LYmz|^bC zV1j&}&#z;F$UEzb!)6H%8}yLxZdPWpOY0r8ktk!FQb@XnxqnA=B=Pw)vhJykiUd49 z)GtL_ECA^~q9SlVisxy!{Y^E8(h!C4lfNQ3?~Bv3cJgu&Ti0H|dR4g!xzA4#mUBQ(oyNwR*O&by(P}LEImf&exjTEHLi+}C&%Bz)+sTwT2hilKX@%|eoZ)M zRRKd4G14n^^!-&-GE*1niUr(~X|UV-|(;H!^9rpB}J`;_pS>{d_Z zu1tBmVV^3Cm8KFSGvdEokQvR1~fZj!j`%+;(4Ac5<5?ZC7wjIz!$d^@U zIM8e&088$9<{auD*q0D7Do0Mmjc_&3gb=x{yl74Y7Fm)Av6Mr>4!EyEO_DPpxe6_y zQ3H)A_ayhIx#TmTH{++aMgGdwBJ0WSCGZQi?)%1Iu74O1)D>Yy;EogP4J^{aj+Q<4 z5Xs`VPK~WvI|C{-F~nKH?p%95dv{sF1R4d+@F_ES-HlSuC_ifhp`B#=*Lpj%Yo9rz zC$Hm0s+TMDH{e|h+2?BwiHjz6c4)HA&OC>Pq*;z5r-1sgM(>wioOh5Ws%rTLcS^3e zx=El!N*@w~LvGqJL~)6y>eN@pwovL1?8SLq*WfadUbZN8N?8DmpI=@S zMT0}U7`u+}EcwBkcg4B>HJMqesl4Pn-d7Gz-fN?X^9-fn<~fZRv@Y6ap6K=$2uNpi#*Pf4g^m z{yUvHuZoYz4z`B~#4=iyXH(^wnImq@5A!e67i|B=%sGI&?T(nQAu#0=68(}T|H*Bge#ev+*1;K4iqEO6K%LH>w6Orsg;EJHxNMf@iV1JtnGTp zV?g^#XE^=!kYVw*h}R$V(SKH?S2i+Si6TU}8ubj<#_2k_0iRao@yL&z8oLca_Yy;6%S!sH68&tTKq2e| zY7M45wC0yq4e6Wf3gaLCyx#?wulGZH#$+Lc=L^JrL3{~q*ksmPQ#$UE9hi^ua8()5 z)In6ChptKcmR=!&jruS!=OqgxSQ7`){O#IEtdfK8-DnaTGeTZxeK+z#Kwe~WAwvae zpuM!f&e518MaE41tvH*_1VOE^p2%;lxHhfMb!&GGd0E7*ui+OPtZrA2{t7(v*`ctP zy>f*K+$ZQWIrj$~>{2paK^2@v2wAO2VI);M1+bQ#ST6#|18;m-rwtVuDfI`b zyoiK@?9KoB&wsk}F=u?Ga-U);507Zy$~lxZpeTrK_xQJKN>`Iyv7u}gN!4j?1PY%3 zjaY}Hv6O(=V0=(aun+(ai^J+0VfAsw9#~Vnkp&)Wri;bmvDo1VG3NgmqE1o5L(cqv U1Iw&dRcHXt4sP}pcI32w0BQ-(ivR!s literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/icon/ms-icon-144.png b/src/.vuepress/public/assets/icon/ms-icon-144.png new file mode 100644 index 0000000000000000000000000000000000000000..2464124422891d245517885bd71c2b49a7d29164 GIT binary patch literal 3657 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 Nz;ukXEAQGy{~Is6@Z10Z literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/image/advanced.svg b/src/.vuepress/public/assets/image/advanced.svg new file mode 100644 index 0000000..c27ede5 --- /dev/null +++ b/src/.vuepress/public/assets/image/advanced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/blog.svg b/src/.vuepress/public/assets/image/blog.svg new file mode 100644 index 0000000..00fc40d --- /dev/null +++ b/src/.vuepress/public/assets/image/blog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/box.svg b/src/.vuepress/public/assets/image/box.svg new file mode 100644 index 0000000..9e6408e --- /dev/null +++ b/src/.vuepress/public/assets/image/box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/features.svg b/src/.vuepress/public/assets/image/features.svg new file mode 100644 index 0000000..6d62739 --- /dev/null +++ b/src/.vuepress/public/assets/image/features.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/github-dark.svg b/src/.vuepress/public/assets/image/github-dark.svg new file mode 100644 index 0000000..37fa923 --- /dev/null +++ b/src/.vuepress/public/assets/image/github-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/github-light.svg b/src/.vuepress/public/assets/image/github-light.svg new file mode 100644 index 0000000..d5e6491 --- /dev/null +++ b/src/.vuepress/public/assets/image/github-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/layout.svg b/src/.vuepress/public/assets/image/layout.svg new file mode 100644 index 0000000..da754b5 --- /dev/null +++ b/src/.vuepress/public/assets/image/layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/markdown.svg b/src/.vuepress/public/assets/image/markdown.svg new file mode 100644 index 0000000..72056c9 --- /dev/null +++ b/src/.vuepress/public/assets/image/markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/favicon.ico b/src/.vuepress/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b411f79ddd958612bceaae08e4fb10ad15340db2 GIT binary patch literal 67646 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 XM033m#ZyCteO>KizdX}A^ZWk+*}K?S literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/logo.svg b/src/.vuepress/public/logo.svg new file mode 100644 index 0000000..364d184 --- /dev/null +++ b/src/.vuepress/public/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/sidebar.ts b/src/.vuepress/sidebar.ts new file mode 100644 index 0000000..0d3bd7f --- /dev/null +++ b/src/.vuepress/sidebar.ts @@ -0,0 +1,94 @@ +import { sidebar } from "vuepress-theme-hope"; + +export default sidebar({ + '/use/': [ + { + text: "概述", + link: "/use/", + }, + { + text: "桌面启动器", + link: "/use/desktop-launcher", + }, + { + text: "FRPC 使用教程", + link: "/use/frpc", + }, + { + text: "FRPC 自启动指南", + link: "/use/boot-on-startup", + }, + { + text: "反馈用户真实 IP", + link: "/use/proxy-protocol", + }, + { + text: "第三方服务 Minecraft 服务端帮助", + link: "/use/other/minecraft-service", + }, + ], + '/problems/': [ + { + text: "总目录", + link: "/problems/", + }, + { + text: "客户端报错", + link: "/problems/#客户端报错", + }, + { + text: "启动器相关", + link: "/problems/#启动器相关", + }, + { + text: "FRPC 相关", + link: "/problems/#FRPC相关", + }, + { + text: "节点相关", + link: "/problems/#节点相关", + }, + { + text: "速率问题", + link: "/problems/#速率问题", + }, + { + text: "管理面板", + link: "/problems/#管理面板", + }, + { + text: "其他", + link: "/problems/#其他", + }, + ], + '/guides/':[ + { + text: "总目录", + link: "/guides/", + }, + { + text: "发布网站", + link: "/guides/#发布网站", + }, + { + text: "远程桌面", + link: "/guides/#远程桌面", + }, + { + text: "Linux 远程桌面(VNC)", + link: "/guides/#Linux 远程桌面(VNC)", + }, + { + text: "群晖 NAS 远程管理", + link: "/guides/#群晖 NAS 远程管理", + }, + { + text: "群晖 NAS 远程管理", + link: "/guides/#群晖 NAS 远程管理", + }, + { + text: "更多...", + link: "/guides/#更多...", + }, + ] +}); diff --git a/src/.vuepress/styles/config.scss b/src/.vuepress/styles/config.scss new file mode 100644 index 0000000..f91061d --- /dev/null +++ b/src/.vuepress/styles/config.scss @@ -0,0 +1,3 @@ +// you can change config here +$colors: #c0392b, #d35400, #f39c12, #27ae60, #16a085, #2980b9, #8e44ad, #2c3e50, + #7f8c8d !default; diff --git a/src/.vuepress/styles/index.scss b/src/.vuepress/styles/index.scss new file mode 100644 index 0000000..f6af387 --- /dev/null +++ b/src/.vuepress/styles/index.scss @@ -0,0 +1 @@ +// place your custom styles here diff --git a/src/.vuepress/styles/palette.scss b/src/.vuepress/styles/palette.scss new file mode 100644 index 0000000..356a428 --- /dev/null +++ b/src/.vuepress/styles/palette.scss @@ -0,0 +1,2 @@ +// you can change colors here +$theme-color: #096dd9; diff --git a/src/.vuepress/theme.ts b/src/.vuepress/theme.ts new file mode 100644 index 0000000..157d0bb --- /dev/null +++ b/src/.vuepress/theme.ts @@ -0,0 +1,191 @@ +import { hopeTheme } from "vuepress-theme-hope"; + +import navbar from "./navbar.js"; +import sidebar from "./sidebar.js"; + +export default hopeTheme({ + hostname: "https://openfrp.wiki", + + author: { + name: "Admin", + url: "https://mister-hope.com", + }, + + iconAssets: "fontawesome-with-brands", + + logo: "https://i.zyghit.cn/img/OpenFrpLogo512.png", + + repo: "vuepress-theme-hope/vuepress-theme-hope", + + docsDir: "src", + + // 导航栏 + navbar, + + // 侧边栏 + sidebar, + + // 页脚 + footer: "默认页脚", + displayFooter: true, + + // 加密配置 + encrypt: { + config: { + "/demo/encrypt.html": ["1234"], + }, + }, + + // 多语言配置 + metaLocales: { + editLink: "在 GitHub 上编辑此页", + }, + + // 如果想要实时查看任何改变,启用它。注: 这对更新性能有很大负面影响 + // hotReload: true, + + // 在这里配置主题提供的插件 + plugins: { + // 注意: 仅用于测试! 你必须自行生成并在生产环境中使用自己的评论服务 + comment: { + provider: "Giscus", + repo: "vuepress-theme-hope/giscus-discussions", + repoId: "R_kgDOG_Pt2A", + category: "Announcements", + categoryId: "DIC_kwDOG_Pt2M4COD69", + }, + + components: { + components: ["Badge", "VPCard"], + }, + + // 此处开启了很多功能用于演示,你应仅保留用到的功能。 + mdEnhance: { + align: true, + attrs: true, + codetabs: true, + component: true, + demo: true, + figure: true, + imgLazyload: true, + imgSize: true, + include: true, + mark: true, + plantuml: true, + spoiler: true, + stylize: [ + { + matcher: "Recommended", + replacer: ({ tag }) => { + if (tag === "em") + return { + tag: "Badge", + attrs: { type: "tip" }, + content: "Recommended", + }; + }, + }, + ], + sub: true, + sup: true, + tabs: true, + tasklist: true, + vPre: true, + + // 在启用之前安装 chart.js + // chart: true, + + // insert component easily + + // 在启用之前安装 echarts + // echarts: true, + + // 在启用之前安装 flowchart.ts + // flowchart: true, + + // gfm requires mathjax-full to provide tex support + // gfm: true, + + // 在启用之前安装 katex + // katex: true, + + // 在启用之前安装 mathjax-full + // mathjax: true, + + // 在启用之前安装 mermaid + // mermaid: true, + + // playground: { + // presets: ["ts", "vue"], + // }, + + // 在启用之前安装 reveal.js + // revealJs: { + // plugins: ["highlight", "math", "search", "notes", "zoom"], + // }, + + // 在启用之前安装 @vue/repl + // vuePlayground: true, + + // install sandpack-vue3 before enabling it + // sandpack: true, + }, + + // 如果你需要 PWA。安装 @vuepress/plugin-pwa 并取消下方注释 + // pwa: { + // favicon: "/favicon.ico", + // cacheHTML: true, + // cacheImage: true, + // appendBase: true, + // apple: { + // icon: "/assets/icon/apple-icon-152.png", + // statusBarColor: "black", + // }, + // msTile: { + // image: "/assets/icon/ms-icon-144.png", + // color: "#ffffff", + // }, + // manifest: { + // icons: [ + // { + // src: "/assets/icon/chrome-mask-512.png", + // sizes: "512x512", + // purpose: "maskable", + // type: "image/png", + // }, + // { + // src: "/assets/icon/chrome-mask-192.png", + // sizes: "192x192", + // purpose: "maskable", + // type: "image/png", + // }, + // { + // src: "/assets/icon/chrome-512.png", + // sizes: "512x512", + // type: "image/png", + // }, + // { + // src: "/assets/icon/chrome-192.png", + // sizes: "192x192", + // type: "image/png", + // }, + // ], + // shortcuts: [ + // { + // name: "Demo", + // short_name: "Demo", + // url: "/demo/", + // icons: [ + // { + // src: "/assets/icon/guide-maskable.png", + // sizes: "192x192", + // purpose: "maskable", + // type: "image/png", + // }, + // ], + // }, + // ], + // }, + // }, + }, +}); diff --git a/src/README.md b/src/README.md index f159936..39206bf 100644 --- a/src/README.md +++ b/src/README.md @@ -1,78 +1,96 @@ ---- -home: true -tagline: ---- - - - - - -::: tip -### 文档已更新 -此文档已获得最新更新,可进行参考。 -::: - -::: tip -### 社区贡献者 -欢迎帮助我们完善我们的使用文档,可前往 [本文档的Github仓库](https://github.com/ZGIT-Network/OpenFrp-Docs) 提交 PR 即可,我们将定期处理合并请求并由 Action 自动构建。 -对我们的文档贡献较大的贡献者,我们将赠与 VIP 或其它内容表示感谢。 -::: - -# 概述 - -OpenFrp诞生于2021/7/17,由 ZGIT Network 与 衡阳百胜信息科技有限公司 合作运营,目前已稳定运行3年,拥有20+国内外节点,来自各位赞助商捐赠 - -# 特性 - -基本服务不需收费,也就是您可以在我们的[服务条款](https://www.openfrp.net/policy/)及[内容策略](https://www.openfrp.net/content/)下自由的使用 Openfrp 所提供的端口映射服务。 - -# 快速入门 -[使用方法](use) -
-[常见问题](problems) -
-[配置指南](guides) -
- - - - - -# 捐赠 - -如果你觉得OpenFrp好用或对你有帮助,或者想给予OpenFrp一点支持,欢迎点击[这里来赞助和支持我们](https://afdian.net/a/zgitnetwork),或者购买本站的[增值服务](https://www.openfrp.net/home/addon)。 - -如果您赞助了我们,请一定要备注您的QQ或者其他联系方式!我们将感激不尽! - - -# 官方用户交流/反馈群 -### QQ频道 -- [OpenFrp开放映射](https://pd.qq.com/s/5kcr1x76o) -### QQ群 -- [OpenFrp 用户交流群 ①](https://jq.qq.com/?_wv=1027&k=Rmq2B1uQ) (注: 问题回答错误将无法加入群聊,你可以更换到别的群。) -- [OpenFrp 用户交流群 ②](https://jq.qq.com/?_wv=1027&k=ju2Ki3Fn) -- [OpenFrp 用户交流群 ③](https://jq.qq.com/?_wv=1027&k=CnQINlkJ) -### 微信群 -企业微信二维码 - -### 钉钉群 -- [点击加入](https://qr.dingtalk.com/action/joingroup?code=v1,k1,qHCW+rhCFYsFlDYj84QH3dMCVHMaDno5qMaY9MzAS5Y=&_dt_no_comment=1&origin=11) - - - -# 推荐视频 - -- [[支持非正版,官方教程] 一分半教你进行Minecraft联机!| OpenFrp使用指南](https://www.bilibili.com/video/BV1224y1X7sU) -- [[快速开服指南]通过MCSM与OPENFRP一键快速开启Minecraft服务器!| OpenFrp使用指南](https://www.bilibili.com/video/BV1yD4y1u7Kq/) -- [[OF内网穿透] 超简单Minecraft我的世界联机教程-离线模式也可以联机啦!](https://www.bilibili.com/video/BV1SD4y1H758) -- [这可能是暑假最好的我的世界联机教程!]( https://www.bilibili.com/video/BV1MP411e7Ki) -- [2分钟!学会用自己电脑开服](https://www.bilibili.com/video/BV1Ek4y1E7Mc) -- [[有求必应]Java版联机教程(可用于手机与电脑Java版互通)](https://www.bilibili.com/video/BV1So4y1t7q9) -- [超简单我的世界离线联机教程(外置登录)](https://b23.tv/BV1Jh4y1g7W8) -- [我的世界超简单的内网穿透联机教程(在线模式)](https://b23.tv/BV1rg4y1V7dq) -- [想要与好友联机却无能为力?教你使用OpenFRP进行内网穿透!免费!无年龄限制!](https://www.bilibili.com/video/BV1TSbfe1Ef1) -- (欢迎上榜) - - -*最后一次更新于 2024/3/16* - +--- +home: true +icon: home +title: OpenFRP 官方文档 +heroImage: https://i.zyghit.cn/img/OpenFrpLogo512.png +bgImageStyle: + background-attachment: fixed +heroText: OpenFRP 官方文档 +tagline: 你可以在这里查看 OpenFRP 使用指南 +actions: + - text: 使用指南 + link: ./use/ + type: primary + + - text: 配置指南 + link: ./guide/ + + - text: 常见问题 + link: ./problems/ + +copyright: Copyright (c) 2019-2024 OpenFRP Teams. All rights reserved.
by 云默安 and other members. +footer: 更新日期:2024/08/15
更新贡献者:THZ +--- + + + +--- +::: tip +### 文档已更新 +此文档已获得最新更新,可进行参考。 +::: + +::: tip +### 社区贡献者 +欢迎帮助我们完善我们的使用文档,可前往 [本文档的Github仓库](https://github.com/ZGIT-Network/OpenFrp-Docs) 提交 PR 即可,我们将定期处理合并请求并由 Action 自动构建。 +对我们的文档贡献较大的贡献者,我们将赠与 VIP 或其它内容表示感谢。 +::: + +# 概述 + +OpenFrp诞生于2021/7/17,由 ZGIT Network 与 衡阳百胜信息科技有限公司 合作运营,目前已稳定运行3年,拥有20+国内外节点,来自各位赞助商捐赠 + +# 特性 + +基本服务不需收费,也就是您可以在我们的[服务条款](https://www.openfrp.net/policy/)及[内容策略](https://www.openfrp.net/content/)下自由的使用 Openfrp 所提供的端口映射服务。 + +# 捐赠 + +如果你觉得OpenFrp好用或对你有帮助,或者想给予OpenFrp一点支持,欢迎点击[这里来赞助和支持我们](https://afdian.net/a/zgitnetwork),或者购买本站的[增值服务](https://www.openfrp.net/home/addon)。 + +如果您赞助了我们,请一定要备注您的QQ或者其他联系方式!我们将感激不尽! + + +# 官方用户交流/反馈群 +### QQ频道 +- [OpenFrp开放映射](https://pd.qq.com/s/5kcr1x76o) +### QQ群 +- [OpenFrp 用户交流群 ①](https://jq.qq.com/?_wv=1027&k=Rmq2B1uQ) (注: 问题回答错误将无法加入群聊,你可以更换到别的群。) +- [OpenFrp 用户交流群 ②](https://jq.qq.com/?_wv=1027&k=ju2Ki3Fn) +- [OpenFrp 用户交流群 ③](https://jq.qq.com/?_wv=1027&k=CnQINlkJ) +### 微信群 +企业微信二维码 + +### 钉钉群 +- [点击加入](https://qr.dingtalk.com/action/joingroup?code=v1,k1,qHCW+rhCFYsFlDYj84QH3dMCVHMaDno5qMaY9MzAS5Y=&_dt_no_comment=1&origin=11) + + + +# 推荐视频 + +- [[支持非正版,官方教程] 一分半教你进行Minecraft联机!| OpenFrp使用指南](https://www.bilibili.com/video/BV1224y1X7sU) +- [[快速开服指南]通过MCSM与OPENFRP一键快速开启Minecraft服务器!| OpenFrp使用指南](https://www.bilibili.com/video/BV1yD4y1u7Kq/) +- [[OF内网穿透] 超简单Minecraft我的世界联机教程-离线模式也可以联机啦!](https://www.bilibili.com/video/BV1SD4y1H758) +- [这可能是暑假最好的我的世界联机教程!]( https://www.bilibili.com/video/BV1MP411e7Ki) +- [2分钟!学会用自己电脑开服](https://www.bilibili.com/video/BV1Ek4y1E7Mc) +- [[有求必应]Java版联机教程(可用于手机与电脑Java版互通)](https://www.bilibili.com/video/BV1So4y1t7q9) +- [超简单我的世界离线联机教程(外置登录)](https://b23.tv/BV1Jh4y1g7W8) +- [我的世界超简单的内网穿透联机教程(在线模式)](https://b23.tv/BV1rg4y1V7dq) +- [想要与好友联机却无能为力?教你使用OpenFRP进行内网穿透!免费!无年龄限制!](https://www.bilibili.com/video/BV1TSbfe1Ef1) +- (欢迎上榜) diff --git a/src/guides/index.md b/src/guides/index.md new file mode 100644 index 0000000..cba8817 --- /dev/null +++ b/src/guides/index.md @@ -0,0 +1,725 @@ +# 常见应用 + +[[TOC]] +本篇为Github用户[foxhank](https://github.com/foxhank)编写,感谢!!! + +## 发布网站 + +> 提示 +> +> 这篇文档只涉及 **发布网站** 的教程,您需要有一个 **已经搭好**、**在内网可以访问** 的网站才能进行穿透 +> 常见的场景有发布博客或个人网站、外网访问路由器/NAS管理页面等。 +> +> 注意:若穿透的是路由器管理等服务,请 **一定设置一个强密码并更改默认用户名**,建议 **打开访问密码功能**,以减少安全问题。 + +### 1. 获得本地 IP、端口和协议 + +首先用浏览器在内网访问一下服务,然后查看地址栏。访问时显示的网址多半是这样的: + +```http +无自定义端口: + +http://<本地 IP>/ + +有自定义端口: + +http://<本地 IP>:<本地端口>/ +``` + +比如: + +```http +# 本地 IP: 127.0.0.1,端口80 +http://127.0.0.1/ + +# 本地 IP: 192.168.31.112,端口4000 +http://192.168.31.112:4000/index.html +``` + +可以把这行网址分为四部分: + +http://协议 192.168.31.112ip地址 :4000端口号 + +> 注:由于默认http端口号为80,所以当访问http://example.com 的时候,其实是在访问http://example.com:80。 + +### 2. 确定你需要的协议 + +我们提供三种 **隧道类型** 供您选择。您可以根据自身需求选择协议。 + +| 隧道类型 | 支持的协议 | 访问时带端口 | 使用自己的域名 | 举例 | +| -------- | ---------- | ------------ | -------------- | ----------------------------------- | +| TCP | http/https | **必须** | 可选 | http://xxx.openfrp.top:11451 | +| HTTP | http | 不需 | **必须** | http://example.com
example.com | +| HTTPS | https | 不需 | **必须** | https://example.com
example.com | + +> 题外话:域名+端口的方式可能会不利于搜索引擎的收录。所以如果你想映射博客的话,建议选http(s),还方便记忆。 + +### 3. 选择穿透节点 + +在创建节点一页有各节点支持的协议、详细介绍等等。根据需要创建隧道。 + +这里以香港-5节点,http隧道,域名example.com,本地端口80为例。 + +![创建隧道](./img/create.jpg) + +填入所有标星号的信息,隧道类型选择http,点击提交,提示"创建成功"并自动跳转到“管理隧道”。 + +### 4. 域名解析 + +转到“配置文件”一栏,下拉框选择创建隧道的节点,会出现配置详情。复制下方的“server_addr"值,以便稍后使用。 +![配置详情](./img/status.jpg) + +随后登录域名商的控制台。 + +> 由于各个注册商的用户界面差异较大,无法一一列举。如果实在是找不到可以上网搜索。 +> +> 这里以阿里云为例。 + +进入控制台,搜索“域名”字样并进入。 + +![控制台](./img/console.jpg) + +随后点击“解析”进入解析管理 + +![解析](./img/list.jpg) + +选择“添加解析”,**记录类型**选择CNAME,**主机记录**填写@¹,记录值填写上文的“server_addr"值,随后确认即可。 + +![添加解析](./img/add.jpg) + +¹:可根据喜好选择域名前缀。比如 + +| 主机记录 | 实际网址 | +| ---------------- | ---------------- | +| @ | example.com | +| www | www.example.com | +| (任何字母)如blog | blog.example.com | + +注意:主机记录需与创建隧道时填写的域名一致:比如主机记录为@,则域名为example.com,那么上文创建隧道时填写的域名也应为example.com + + + +等待域名解析生效即可用域名的形式连接。根据各服务商的不同,生效时间大概在10秒钟--10小时不等。 + + + +### 5. 启动隧道 + +启动隧道。若一切正常您就可以通过example.com的形式来访问网站。 + +![启动隧道](./img/start.jpg) + +---- + +### 常见问题 + +#### 1.已经建好,但提示“503 Service Unavailable” + +1. 请检查创建隧道时,填写的域名是否与访问域名一致。 + + 请注意:www.example.com与 example.com是两个网站 + + 同样的,a.example.com与b.example.com也是两个网站 + +2. 请检查FRP客户端是否有报错 + + 可能由于网络原因,导致客户端与服务器断开连接。一般稍等或手动重启隧道即可解决。 + +3. 可能节点正在遭受攻击,请通过 [状态监控](https://kuma.openfrp.net/status/of)查看所选节点健康状态,或尝试更换节点。 + +4. 域名解析到的节点是否和隧道所在的节点相同? + + 请注意:DNS 解析修改后并不是立即生效的,解析结果缓存时长从 10 分钟到一星期不等,请等待解析生效后再试。 + + Windows可通过以下命令查看dns解析地址 + + ```bat + nslookup <你的域名> + + # 例如 + nslookup www.example.com + ``` + + ![DNS查询](./img/nslookup.jpg) + +“名称”需为xx.openfrp.top才代表解析同步成功��� + +5. 本地的 Web 服务是否成功启动?隧道映射的本地 IP 和端口号是否正确? + +- 是否能在 **运行 frpc 的电脑** 通过 **本地 IP** 和 **本地端口** 访问您的网站? +- frpc 有没有显示 `无法连接到本地服务` 等错误? + +6. 客户端是否成功启动并出现 `start proxy success` 字样? + +- 在 Windows 上最好使用启动器管理隧道,Linux最好通过docker部署。 + +7. (HTTPS 隧道)是否正确创建?访问的时候有没有输入完整的 `https://` 前缀? + +- 只创建 HTTPS 隧道会导致使用 HTTP 协议访问时出现 503 错误 + +#### 2. 提示“connection timed out“ + +可能是节点挂了,请等待或更换节点。 + + +## 远程桌面 + +### Windows 远程桌面(RDP) + +#### 0. 安全提醒 + +映射远程桌面通常会带来出人意料的风险,因为巨硬的漏洞总是很多。 + +如果您需要映射远程桌面,我们强烈建议您启用 Windows Update 来避免批量 0day 漏洞利用使得您的电脑遭到攻击,并设置一个账户强密码。 + +虽然windows的系统更新安起来确实费劲,它可以帮助你免受病毒的侵袭。 + +#### 0.1 设置账户密码 + +由于安全原因,windows不允许没有密码的账户进行远程连接。所以,**被连接端**需要设置一个账户密码。 + +##### 0.1.1 Windows 7设置密码 + +![点击头像](./img/RDP/win7-1.jpg) + +点击“开始”按钮,并点击右上角的头像,进入“用户账户” + +![创建密码](./img/RDP/2.jpg) + +点击“为您的账户创建密码“ + +![输入密码](./img/RDP/3.jpg) + +输入两遍密码,点击"创建密码",密码即设置成功 + +注意:密码提示不建议设置,若设置,请写一段只有你和用电脑的人知道的提示词,不要把密码放在密码提示中! + + + +##### 0.1.2 Windows 10设置密码 + +![](./img/RDP/4.jpg) + +点击“开始”按钮,随后点击头像,点击“更改账户设置进入用户账户页面。 + +![设置密码](./img/RDP/5.jpg) + +选择“登录选项”,随后在密码一栏中点“添加” + +输入两遍密码,即可创建。 + +#### 1. 打开远程桌面功能 + +请注意:从Windows7开始,家庭版系统不支持远程桌面功能。您可以通过以下方式判断: + +右键“我的电脑”,点击属性,查看右侧显示版本名称。 + +![image-20230626112520494](./img/RDP/6.jpg) + +若显示“家庭版”则无法使用。建议升级为专业版,或在网上寻找补丁打开远程桌面功能。**使用补丁可能具有安全风险,请自行甄别** + +若您的电脑支持此功能,点击左侧的“远程设置”,随后界面点击"允许远程连接到此计算机"并点击确认 + +**注意:远程协助和远程连接是两个不同的功能** + + + + + +![image-20230626112917517](./img/RDP/7.jpg) + + + +随后打开启动器,**创建一个本地端口3389的隧道**,并启动隧道。 + +![image-20230626113758469](./img/RDP/8.jpg) + +至此,被控端的配置便全部完成。 + +#### 2.连接电脑 + +![image-20230626114723795](./img/RDP/9.jpg)开始菜单-点开“windows附件”文件夹-打开“远程桌面连接” + +![image-20230626114841264](./img/RDP/10.jpg) + +输入对方隧道网址,点击链接 + + + +若一切正常,接下来会让你输入用户密码,**输入对方电脑的用户名和密码**,点击确定 + +![image-20230626115109232](./img/RDP/11.jpg) + +由于电脑使用的是自签证书,会弹出安全提醒,点击“是”即可 + +![image-20230626115244484](./img/RDP/12.jpg) + +稍等片刻即可连接。此时已经可以使用了。 + +#### 3. 可选:启用UDP连接 + +![image-20230626115539253](./img/RDP/13.jpg) + +这时你会发现,上面的信号栏只有两格信号,质量为良好。虽然也能用,但看着总归不舒服。 + +解决方法:![image-20230626120252501](./img/RDP/14.jpg) + +创建一个 **相同远程端口,UDP模式**的隧道。随后将两个隧道全开启。 + +![image-20230626120440770](./img/RDP/15.jpg) + +随后重启远程连接,可以发现提示“已启用UDP”,并且“良好”升级为“非常好 + +![image-20230626121153826](./img/RDP/16.jpg) + +## Linux 远程桌面(VNC) + +不同于Windows自带的RDP,linux系统一般使用开源的VNC进行远程桌面连接。 +> 演示环境: +> +> 被控端:Deepin 20.5,Linux内核5.1.101 +> OpenFRP V0.48.1 , + +### 1. 安装x11 VNC(若系统自带VNC可跳过) +```bash +sudo apt update +sudo apt install x11vnc -y +``` + +![安装vnc](./img/vnc/x11vnc.gif) + + + +#### 1.1 设置VNC密码(重要) + +只要拥有域名和端口号的人都能通过vnc访问你的设备,所以设置一个密码十分重要 + +```bash +sudo x11vnc -storepasswd /etc/x11vnc.pass +``` + +![设置一个一个一个密码](./img/vnc/setpwd.png) + +输入两遍密码,会提示你确认一遍路径,输y即可 + +#### 1.2 配置开机自启 + +通过systemd控制服务开机自启 + +```bash +sudo vim /etc/systemd/system/x11vnc.service +``` + +随后按Insert进入输入模式,将配置复制进去后输入`:wq`保存并退出 + +```ini +[Unit] + +Description=Start x11vnc at startup. + +After=multi-user.target + +[Service] + +Type=simple + +#ExecStart=/usr/bin/x11vnc -forever -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared + +ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared + +[Install] + +WantedBy=multi-user.target +``` + +![](./img/vnc/vncservice.gif) + + + +随后systemctl三连击 + +开机自启`systemctl enable x11vnc` + +启动服务`systemctl start x11vnc` + +查看状态`systemctl status x11vnc` + +![启动服务](./img/vnc/start.png) + +若输出中“Active”为“active(running)”则为启动成功,可以看到`PORT=5900` ,意味着服务正运行在5900默认端口上。 + +### 2. 创建隧道 + +新建一个本地端口为5900的隧道,其余保持默认即可,点击提交 + +![创建隧道](./img/vnc/create.png) + +随后转到“隧道管理”,选择刚创建隧道的节点,将配置文件复制下来 + +![配置文件](./img/vnc/cut.png) + +### 3. 安装及配置FRP服务 + +由于Linux版本的frpc没有控制面板,所以需自行配置`frpc.ini`文件。 + +先按照CPU架构下载[Linux版本的FRPC客户端](https://console.openfrp.net/home/download),大部分是x86架构的系统,选择amd64即可。 + +下载后,将文件解压缩,重命名为`frpc`,并在同目录下创建一个名为`frpc.ini`的配置文件,如图所示 + +![](./img/vnc/frp.png) + +打开frpc.ini,将刚才复制的配置文件内容复制进去,保存并退出。 + +随后右键空白处,选择“在终端中打开“ + +输入命令启动隧道 + +```bash +nohup ./frpc -c ./frpc.ini & +``` + +会提示“忽略输入并把输出追加到”nohup.out“文件中,可通过 + +```bash +vi ./nohup.out +``` + +查看运行日志。若启动正常,会提示“隧道启动成功”,且提供一段网址,可通过此网址使用VNC客户端进行连接。 + +![运行](./img/vnc/run.gif) + + + + + +## 群晖 NAS 远程管理 + +群晖虽然自带一个quickconnect远程管理服务,但黑群晖(盗版系统)用户是用不了的。况且由于群晖的服务器在台湾省,数据一来一回,延迟也高的要命。 + + +> 演示环境:黑群晖 DSM 6.1.7 15284,,OpenFRP Docker端v0.48.0 +> + + +### 1. 确认端口号 + +局域网进入群晖后台,进入“控制面板”,选择“网络”并切换到“DSM设置”栏,可以看到端口号,默认为5000(http)和5001(https) + +![端口号](./img/syno/port.jpg) + +### 2. 创建隧道 + +在控制台创建一个本地地址为172.17.0.1,本地端口为5000的TCP隧道![](./img/syno/tunnel.jpg) + +随后转到“隧道管理”,记下隧道的ID + +![image-20230628153524963](./img/syno/id.jpg)再去“首页”复制下你的访问秘钥 + +![image-20230628153716871](./img/syno/key.jpg) + +注意:请勿将访问秘钥告知任何人,OpenFRP官方不会索取您的访问秘钥,若在交流群里问问题,发送截图前请注意遮挡访问秘钥。若不慎泄露,可去个人中心-重置秘钥 进行秘钥重置 + + + +### 3. 使用docker安装OpenFRP + +打开套件中心,左上角搜索栏输入“docker”,并点击安装套件。 + +![安装](./img/syno/dc-install.jpg) + +安装完成后点击打开。 + +由于Docker Hub在国内无法访问,所以选择“注册表”会提示“查询注册表失败”。 + +![](img/syno/dc-1.jpg) + +但可以使用docker pull命令下载镜像。 + +#### 3.1 打开ssh功能 + +打开控制面板,拉到最下面选择“终端机和SNMP”,勾选“启用ssh功能”并应用。 + +![启用ssh](./img/syno/ssh-enable.jpg) + + + +随后Win+R,输入`cmd`,进入命令提示符,输入`ssh (用户名)@(群晖ip)`进行连接。 + +> 若提示'ssh' 不是内部或外部命令,也不是可运行的程序或批处理文件,说明你的电脑不自带ssh工具,请自行百度搜索“ssh连接群晖”安装工具并进行连接。此处不再赘述。 + + + +#### 3.2 创建容器 + +输入 + +```bash +sudo docker run -d --name of openfrp/frpc:latest -u (你的访问秘钥) -p (你的隧道ID) +``` + +将用小括号括起来的字段换成你自己的内容。 + +比如:`sudo docker run -d --name of openfrp/frpc:latest -u 1145141919810 -p 114514` + +若创建多个隧道,可输入 + +```bash +sudo docker run -d --name of openfrp/frpc:latest -u (你的访问秘钥) -p (你的隧道id)[,(隧道id2),(隧道id3)] +``` + +比如 : `sudo docker run -d --name of openfrp/frpc:latest -u 1145141919810 -p 114514 [,114515 , 114516]` + +稍等一会,等显示一串字符就表示开启成功。 + +![image-20230628155151092](./img/syno/success.jpg) + +### 4. 查看网址 + +输入 + +```bash +sudo docker logs of +``` + +查看容器日志。 + +![](./img/syno/log.jpg) + +使用提供的网址,即可进入群晖管理页。 + +### 5. 管理容器 + +群晖自带有一个可视化docker管理页面,不用每次都连接输命令。 + +网页控制台中,打开“docker”,选择“容器”找到名叫“of”的容器,即可方便控制开启或关闭 + +![](./img/syno/manage.jpg) + +同时,您还可以双击进入容器,点击“日志”栏查看详细日志 + +![](./img/syno/logs.jpg) + + + +## 远程唤醒 + +> 远程唤醒技术(WOL,Wake-on-LAN)是由网卡配合其他软硬件,通过给处于[待机状态](https://baike.baidu.com/item/待机状态/8552519?fromModule=lemma_inlink)的网卡发送特定的数据帧,实现电脑从停机状态启动的一种技术。 +> +> --摘自百度百科 + +简单地说,网络唤醒就像在家里局域网大喇叭UDP广播电脑的名字MAC地址,就会把对应电脑叫醒。那么,要想在外面也能叫醒电脑,只要安一个远程喇叭就行了。 + +硬件方面需要网卡支持网络唤醒,不过现在百分之95的网卡都带这个功能,我一个09年的百兆垃圾网卡都支持这个功能 + +那么,理论成立,实践开始! + + + +### 1. 创建内网穿透隧道 + +进入创建隧道栏,随便选一个节点,隧道名称随便填,本地端口选9,隧道类型选 UDP 本机地址填255.255.255.255 剩下的不用管,可以选“随机远程端口”或者输一个喜欢的数字,点提交 + +![image-20230614202137433](https://s2.loli.net/2023/06/14/TkhC5sEK7Gl6Ao4.png) + + + +创建完后会自动跳到隧道列表栏,记下隧道ID,等会要用 + +![image-20230614201410965](https://s2.loli.net/2023/06/14/iNAcgbTs2uzF1Er.png) + +### 2. 服务器端部署FRPC + +我的NAS使用的是黑群晖DSM6.1.7版本,本质上是个魔改的Debian系统,所以可以用Linux的程序 + +为了方便调试,我使用docker运行,当然也可以使用其它方案,大同小异。 + +OpenFrp提供了一个官方的docker镜像,可以通过访问秘钥+隧道ID连接。 + +安装docker,打开SSH访问等步骤不再赘述,由于Docker Hub在国内无法正常访问,但能拉取镜像,所以这里采用ssh安装的方法 + +首先SSH连上要部署的服务器,输入 + + +```bash +sudo docker run -d --name OpenFRP openfrp/frpc:latest -u (你的访问秘钥) -p (隧道ID) +``` + + +比如:` docker run -d --name OpenFRP openfrp/frpc:latest -u b7b***1c9 -p 1****0` + +安装速度取决于网速 + +![image-20230614204200951](https://s2.loli.net/2023/06/14/4MQhJ5BqljZawxT.png) + +等一会后会显示一串字符,这就代表安装成功 + +### 3. 被控电脑打开远程开机功能 + +#### 3.1 Windows + +网络和Internet设置-更改适配器选项,各Windows版本不同,总之要进入网络连接控制里 + +![image-20230614204837169](https://s2.loli.net/2023/06/14/nEqQeNpiXg5zIjZ.png) + +右键网卡,选择“属性”,依次选“配置”-“高级”-”魔术封包唤醒“,更改为“开启” + +ps:如果你电脑的网卡找不到以上选项,就找那种包含“唤醒(wake up)”文字的属性,然后全部设置成开启就是 + +![image-20230614205207917](https://s2.loli.net/2023/06/14/NaP9CROvWfHlXDZ.png) + +随后切换到电源管理,把“允许此设备唤醒计算机”打开 + +![控制面板设置](https://s2.loli.net/2023/06/14/GZSNOVrybaEn2vl.png) + +至此,系统部分配置完毕,接下来要进BIOS里调整了。 + +#### 4.修改BIOS设置 +由于各个品牌进入BIOS的方法不同,建议百度搜索“电脑品牌+BIOS”,有详细的方法,一般是开机狂按某个键或者按机箱/笔记本侧边的特定按钮。 +进入BIOS后,按箭头键切换到“高级”一栏(或:电源管理),选择“PCI设置”,将‘Power On By PCIE/Onboard Lan’打开,(或者叫网络唤醒之类的名字) +将其切换为enable后 按F10保存并退出。 +![BIOS设置](https://s2.loli.net/2023/06/16/SAZoqWcX6LrJvDw.jpg) + +#### 5.发送唤醒包 + +##### 5.1 Windows端 +首先要下载一个wol的程序。不大,是个命令行程序,方便一键执行 +[WOLCMD网站][1] +[下载][2] +下载是一个压缩包,打开后选择解压到C:\根目录里,方便调用命令行,或者可以修改成一个自己熟悉的文件夹,不过下面的命令就需要修改 +![解压缩](https://s2.loli.net/2023/06/17/JQwlde1M7pWVaqU.png) +之后Windows+R组合键,输入CMD,打开命令行,输入 + +```bash +cd /d C:\ +wolcmd (网卡MAC地址) (frp服务器地址)255.255.255.0 (隧道端口) + +``` +比如 +`wolcmd b8975a4d6e5b cn-hk-bgp-5.openfrp.top 255.255.255.0 11451` +如果一切顺利,会提示“唤醒信号已发送至设备”,并显示frp服务器的ip地址和端口 +![发送成功](https://s2.loli.net/2023/06/17/ipEqyG3rM87gKAP.png) + +如果不清楚如何获取mac地址,可以看下面的5.1.1 + + +###### 5.1.1被唤醒电脑获取网卡MAC地址 +Windows+R组合键,输入CMD,打开命令行,输入命令 + + `ipconfig /all` + +会输出一大堆东西,找到名字叫以太网(有线连接)或者叫无线网络适配器(wifi连接)的,这就是此网卡的MAC地址 +![MAC地址获取](https://s2.loli.net/2023/06/17/BgqznQpy13jE4DR.png) + +###### 5.1.2 通过bat批处理实现一键开机 +新建一个文本文件,把上面的唤醒命令全部复制进去 +![bat文件内容](https://s2.loli.net/2023/06/17/g5YcHWjtqapnkrU.png) +随后重命名文件,将后缀修改为.bat +![修改后缀](https://s2.loli.net/2023/06/17/wJKq9YGaIDo4hni.png) +修改完后就可以通过点击这个文件进行一键唤醒 + +##### 5.2 安卓安装唤醒程序 + +可以去各大应用商店搜索关键词“Wake On LAN”,比如谷歌商店就有 +或者下载这个安装包 +https://cowtransfer.com/s/3a06bd6050a64c +提取码bjtym5 + +右下角+号-左上角手动输入 +![创建](https://s2.loli.net/2023/06/17/qzdEf2kAVDmwMrp.gif) +输入你的信息即可,如图 +![输入信息](https://s2.loli.net/2023/06/17/rk8JG7KwQvPXSml.jpg) +随后保存,返回到主页,点击条目即可发送唤醒信息 + +##### 5.3 微信小程序唤醒 +有很多支持网络唤醒的小程序,只要填入信息也可以做到远程唤醒。 +具体可微信小程序搜索“网络唤醒”,都有详细的使用方法 +![小程序](https://s2.loli.net/2023/06/17/PAhkGXsQT5cbmaN.jpg) + +##### 常见问题: +1.无法唤醒? +- 请留意电脑关机后,路由器端网卡指示灯是否还亮着,否则可能是网卡断电,需要去BIOS的电源管理里设置 +- 电脑最后一次关机是否为正常关机(点击关机键关机),意外断电无法使用wol唤醒 +- 台式电脑是否关闭过总电源?断电会造成存储的信息丢失,需要重新开机后关机才能使用 + +2.网卡设置中没有唤醒选项? +可以尝试升级网卡驱动,部分非常非常古老的网卡可能没有这个功能,那也无能为力 + +[1]: https://www.depicus.com/wake-on-lan/wake-on-lan-cmd +[2]: https://www.depicus.com/downloads/wolcmd.zip + +## 部署 MCSManager 管理面板 +### 0.1 前言 + +> 使用 MCSManager 管理面板需要一定的基础知识(例如启动命令),下载 MCSManager 面板请前往[ MCSManager 的官网](https://mcsmanager.com/)下载。 + +使用 MCSManager 面板即代表您默认同意承担**节点掉线导致的无法访问服务器后台**的风险! + +使用 MCSManager 时,请设置一个高强度的密码,避免密码被暴力破解,也请不要使用诸如 **12341234**、**12345678**、**abc123456** 等低强度的密码! + +### 0.2 系统环境 + +教程将以 **Windows Server 2012 R2 系统**,**MCSManager 10** 做示范,其它版本的操作系统可能有差异。 + +请确保在运行 MCSManager 时,您的账户为 Administrator 或具有管理员权限的账户! + +### 1.1 启动 MCSManager 面板 + +当您下载并解压完毕 MCSManager 面板之后,您将会看到如下界面: + +![MCSMinstalled](https://s3.bmp.ovh/imgs/2024/06/09/2f951f7bdf07b080.png) + +双击 `start.bat`,启动 MCSManager 面板。成功启动后,您应该会看到两个 `node_app` 的窗口,这两个窗口是 MCSManager 的主窗口,无须担心。 + +![MCSMnodeapp](https://s3.bmp.ovh/imgs/2024/06/09/21a6c86b2f66cb02.png) + +稍等一会后,您的默认浏览器应该会自动打开 `localhost:23333/#/install` 这个网站。在此处,`localhost` 指的就是 `127.0.0.1`,把它记住,等会还要用。 + +此时,您可以按照 MCSManager 的提示一步步操作,部署自己的 Minecraft(或其它游戏)的服务器。 + +### 1.2 设置 + +![MCSMsettings](https://s3.bmp.ovh/imgs/2024/06/09/f3784204bde8ed12.png) + +在默认情况下,您的面板端口默认是 `23333`,这个端口即是一会要穿透出去的端口。您也可以自定义一个五位数端口,例如 `11451`、`54188` 等端口。 + +启动 OpenFrp 软件,创建一个隧道,将本地地址设置为 `127.0.0.1`,端口设置为 `23333`(即刚才的面板端口)。名字可以起一个自己好记的端口,方便自己,也方便运维(如果您的服务器拥有管理团队)。 + +以 `#15 驻马店移动`节点为例,设置应该如下图一般: + +![MCSMtoFrp](https://s3.bmp.ovh/imgs/2024/06/09/01d4350bb2549389.png) + +创建完毕后,您可以直接开启并访问这个地址。注意,您必须使用 IP 地址访问(即 `xxx.xxx.xxx.xxx:xxxxx`),否则您将无法访问面板。 + +### 2 远端服务器配置 + +如果所有的设置都正确,您应该可以看到如下界面: + +![REMOTE](https://s3.bmp.ovh/imgs/2024/06/09/2e8aa8a6548c3278.png) + +恭喜您!您已经完成了基础配置! + +接下来,我们将要进行远程服务器配置。首先,请牢记每一个 MCSManager 默认面板节点端口默认都是 `24444`,这个端口很重要!请记住! + +在 OpenFrp 中,创建一个本地地址为 `127.0.0.1`、本地端口为 `24444` 的节点。设置如图: + +![remotepointsets](https://s3.bmp.ovh/imgs/2024/06/09/e905dc863dbd9471.png) + +创建隧道,开启隧道。 + +在日志中,找到对应的 IP 地址,复制它。 + +![checklog](https://s3.bmp.ovh/imgs/2024/06/09/714540ceac4a8ada.png) + +在 MCSManager 面板中,找到`应用实例`,点击右侧的`选择远程节点`,点击`配置远程节点`,点击`新增节点`。配置如下图: + +![mcsmlast](https://s3.bmp.ovh/imgs/2024/06/09/dd60f2e5cf7d2d7e.png) + +点击`确定`,即可完成最后一步的配置。此时您应该能看到刚刚添加的节点了。 + +## 更多... + +欢迎各位大佬投稿,发布各种各样的应用教程! +但是要自行添加对应教程的侧边导航。 + +您可以在[Github上发布pull request](https://github.com/ZGIT-Network/OpenFrp-Docs),我们看到了会及时处理。 + diff --git a/src/problems/index.md b/src/problems/index.md new file mode 100644 index 0000000..954fb51 --- /dev/null +++ b/src/problems/index.md @@ -0,0 +1,254 @@ +# 常见问题 + +[[TOC]] + +## 客户端报错 +> **我们推荐使用 简易启动 功能或者图形客户端(OpenFrp Launcher)启动您的隧道,可以避免 下表 大部分问题。** + +请查看日志,下表为常见报错及解决办法 +| 英文 | 中文 | 备注 | +| --- | --- | --- | +| Your `XXX` proxy is available now. Use [`YYY`] to connect. | `XXX` 类型隧道启动成功 使用 [`YYY`] 来连接到你的隧道 | 隧道启动成功,一切正常 | +| Recover success: [`XXX`] | 不断线重连成功: [`XXX`] | 网络波动,一般可以忽略或更换节点 | +| recover to server timed out | 不断线重连失败 | 网络波动,frpc 会自动尝试另外一种重连方式,一般可以忽略或更换节点 | +| Connection recover failed: `XXX` | 不断线重连失败: `XXX` | 网络波动,frpc 会自动尝试另外一种重连方式,一般可以忽略或更换节点 | +| read from control connection EOF | 控制连接读取失败 (EOF), 可能是网络不稳定 | 网络波动,一般可以忽略或者更换节点 | +| write message to control connection error: `XXX` | 控制连接写入失败, 可能是网络不稳定: `XXX` | 网络波动,一般可以忽略或者更换节点 | +| login to server failed: `XXX` | 登录节点失败, 请检查网络连接: `XXX` | [点此查看详细说明](#登录节点失败-请检查网络连接) | +| connect to local service [`XXX`] error: `YYY` | 连接映射目标 [`XXX`] 失败, 请检查本地服务是否打开: `YYY` | [点此查看详细说明](#无法连接到本地服务) | +| proxy conflict | *隧道冲突* | 该问题是由于隧道重复开启造成的,请查找 **所有设备** 上的 frpc 进程并关闭重复开启的隧道。如果此问题持续存在,请尝试重置访问密钥 | +| multi-instance racing, this one failed | *多实例竞争* | 该问题是 frpc 重复开启且生成了相同的 RunID,在 frps 上争抢同一个隧道造成的。请在 **当前设备** 上查找所有存在冲突的 frpc 进程并关闭,或检查 supervisor 配置是否有误 | +| port already used | *服务端端口被占用* | 换一个远程端口 | +| i/o deadline reached | I/O繁忙 | 节点可能过载,建议换一个节点 | +| router config conflict | *URL 路由冲突* | [点此查看详细说明](#url-路由冲突) | +| Request failed: `XXX` `YYY` | *API 请求失败* | [点此查看详细说明](#api-请求失败) | +| reconnect to server error: dial tcp 'XXX ': connect: connection refused |重连失败:服务器拒绝连接|可能是你选择的节点正在遭受攻击。[请查看节点状态](https://kuma.openfrp.net/),等待恢复或换一个节点。| +| Get "xxx": tls: failed to verify certificate: x509: certificate signed by unknown authority | 证书验证失败 | [点此查看详细说明](#api-请求失败) | + +### 登录节点失败, 请检查网络连接 + +1. 请运行 PING 命令测试节点连通性 (Windows) + + ```bash + ping <节点域名> + + # 例如 + ping cn-shanghai.openfrp.top + ``` + +1. 请查看 [节点状态](https://kuma.openfrp.net/) 页面对应节点是否在线 + +| 节点在线 | PING 测试 | 可能原因 | 解决方案 | +| :------: | :-------: | ------------------------------------------ | ----------------- | +| ✘ | ✘ | 节点被攻击或故障 | 换节点 / 等待恢复 | +| ✔ | ✘ | 网络故障 | 换节点 / 换网络 | +| ✔ | ✘ | 节点被 GFW 屏蔽了 | 换节点 | +| ✔ | ✔ | 上游防火墙拦截 FRP 协议或 7000 / 7001 端口 | 换网络 / 找别家 | +| ✔ | ✔ | 公司 / 学校网络管理员不允许使用 frp协议 | 不建议继续使用 | + +### URL 路由冲突 + +| 原因 | 解决方案 | +| -------------------------------- | ------------------------------------------------------------ | +| 创建隧道时填写的域名有误 | 填写正确的域名 | +| 服务端路由未释放 | 和 [端口被占用](#服务端端口被占用) 类似,解决方案也相同 | +| **高级设置** 中 URL 路由配置错误 | 您是高级用户,请自行寻找解决方案
如果是不小心填写的,请删掉相关配置项 | + +### 服务端端口被占用 + +| 原因 | 解决方案 | +| ------------------ | ------------------------------------------------------------ | +| 隧道刚刚被关闭 | 启动器: **关闭隧道**
FRPC: **退出 FRPC**
等待 **一分钟** 后重新开启 | +| 存在 FRPC 进程残留 | 启动器: 右键点击托盘图标, **彻底退出** 后重新打开启动器
frpc: 打开 **任务管理器** 查找并 **关闭** 残留的 FRPC 进程 | +| 重复开启隧道 | 一条隧道同一时间只能在一个地方开启
请 **关闭重复开启的隧道** 并 **创建不同端口的隧道** 使用 | + +### 无法连接到本地服务 + +此日志说明 **FRPC 工作正常**,但是 FRPC 无法连接到您的本地服务。 + +| 原因 | 解决方案 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| 本地服务 (例如 Minecraft 服务器,HTTP 服务器) 没有启动或启动失败 | 检查并启动本地服务 | +| 本地服务配置有误,没有监听 frpc 连接的本地 IP | 正确配置本地服务或修改隧道设置 | +| **本地端口** 或 **本地 IP** 填写错误 | 编辑隧道,参考文档 **填写正确的信息** 然后 **重启 frpc** | +| **本地 IP** 发生了变化 | 重新检查本地地址,然后编辑隧道 **填写正确的本地 IP** 并 **重启 FRPC** | +| 防火墙、杀毒软件拦截 FRPC 请求本地服务 | 添加白名单规则到防火墙、杀毒软件中。
不建议彻底关闭防火墙 | + +注:若您使用docker方式部署服务,提示**无法连接到本地服务**,请检查容器使用的网络模式是否正确。 +docker常见网络环境有“bridge”(默认)、”host“和”macvlan“三种模式。可使用以下代码查看OpenFRP容器的网络模式。 + +```bash +docker inspect (您的容器名称) | grep NetworkMode +``` + +比如:如您的容器名称为OpenFRP(注意大小写),您应该输入 `docker inspect Openfrp | grep NetworkMode` + +- 若输出为:`"NetworkMode": "host", ` + + 则应在创建隧道时设置“本地地址”为127.0.0.1 + +- 若输出为:`"NetworkMode": "bridge",` + + 则应在创建隧道时设置“本地地址”为宿主机 `Docker0接口` (一般为172.17.0.1) + + + +### API 请求失败 + +请优先检查 API 连接性问题: + +- 检查 SSL 问题 (一般不存在) + - Windows 系统请使用 **Edge 等现代浏览器** 访问 `http://of-dev-api.bfsea.xyz/` 查看是否出现安全警告,如果出现请安装系统更新或者手动安装根证书 + - Linux 系统可以使用 `tcping http://of-dev-api.bfsea.xyz/` 检查是否存在证书错误,如果出现证书错误可以尝试安装 (或更新) `ca-certificates` 包, 若仍无效且使用 Termux 请尝试手动安装根证书或使用配置文件启动 +- 检查防火墙、杀毒软件是否拦截了 FRPC 的请求 +- 检查宽带是否存在到期未续费等情况,电脑能否正常 **打开网站**(例如 Bing) + +如果还是没有什么头绪,可以查看 [外部状态监控](https://kuma.openfrp.net/) 中 API 是否正常在线 (**Online**),如果不在线请联系管理员。 + + + + + +## 启动器相关 + +### 未连接到守护进程, 请尝试重启启动器 + +请按尝试以下操作: + +1. **完全退出**启动器后(托盘图标点击右键-退出),右键并选择**以管理员身份运行** + +### 杀毒软件提示启动器有病毒 + +若您是在官方网站下载的启动器,则极大概率是误报,建议您在[杀软中添加白名单](https://openfrp.wiki/use/desktop-launcher.html#%E5%8A%A0%E5%85%A5%E7%B3%BB%E7%BB%9F%E7%99%BD%E5%90%8D%E5%8D%95)然后重新安装启动器。 + +若您在非官方网站下载启动器,请删除并去官方网站[OpenFrp管理面板 - 下载中心](https://console.openfrp.net/download)重新下载启动器。 非官方渠道下载的启动器有被植入病毒的风险 + +OpenFrp Lanucher 启动器已完全开源,开源地址:[https://github.com/ZGIT-Network/OpenFrpLauncher](https://github.com/ZGIT-Network/OpenFrpLauncher)。 + +*开放映射启动器软件为完全自主知识产权软件,已获得注册登记。 登记号: 2024SR0589290。* + + + +## FRPC相关 + +### FRPC的兼容性 + +FRP客户端具有很强的兼容性,也就是说您可以使用几乎任何现有(只要支持 -c 参数)的 FRP 客户端来使用我们的服务,只需根据隧道的「配置文件」手动填写关键连接参数,或直接复制配置文件启动即可 + +如果您是使用 Windows XP 或 Windows Vista 的用户,请使用上游的 [0.28.2 (opens new window)](https://github.com/fatedier/frp/releases/tag/v0.28.2)版本 。 + +使用任何非本网站分发的最新版客户端,均视为放弃相关支持,由此带来的任何问题请您发扬极客精神自行解决。 + +OpenFrp支持 FRP 官方最新版本以及其他的 FRP 发行版本,您可以前往任意站点下载任意版本的 FRP 客户端(0.18以上版本)。 如果该客户端支持编辑 FRPC 配置文件,则该 FRP 客户端可以使用 OpenFrp ,使用方法与普通配置文件版本客户端相同! + +请从您所信任的站点下载非Openfrp提供的 FRPC 程序,如 [FRP 的官方 Github 的发行版本 ](https://github.com/fatedier/frp/releases/)等,我们不能保证您通过非 Openfrp 下载的 FRPC 程序没有恶意行为! + + + + +## 节点相关 + +### 节点会有IPV6支持吗? + +没有!我们所有的节点均不支持使用IPv6进行链接,我们也不会考虑提供IPv6的支持 + +~~有公网IPv6为何还需要内网穿透呢?~~ + +### 你能告诉我哪个节点最好用吗? + +取决于以下几点: +- 该节点的使用人数 +- 节点到客户端的物理距离 +- 节点与客户端的网络状况 +- 国家政策 +- 部分不可抗力因素 +- 某些人的恶意攻击 + +> 送某些人一句话:如果有 10% 的利润,它就保证到处被使用;有 20% 的利润,它就活跃起来;有 50%的利润,它就铤而走险;为了 100% 的利润,它就敢践踏一切人间法律;有 300% 的利润,它就敢犯任何罪行,甚至绞首的危险。 + +所以,要想取得最佳体验,建议首选离你地理位置最近的节点。 + +## 速率问题 + +### 为什么穿透速率无法到达标称的最大速率? + +- 我们的限速单位为 Mbps, 即 Megabits per second + +​ 单位换算公式为 1 Mbps = 0.125 MB/s ,如您的限速为5Mbps 上行 / 5 Mpbs 下行 ,则您实际可以得到的速 率为 0.625 MB/s. + +速率转换表: + +| 用户级别 | 速度(Mb) | 速度(MB) | +| -------- | ---------- | ---------- | +| 免费用户 | 12Mb | 1.5MB | +| 普通会员 | 24Mb | 3MB | +| 高级会员 | 36Mb | 4.5MB | + +- 传输速率与本机和节点双方的网络环境、地理位置距离有关。 + +- **用户速率 \* 带宽倍率 = 实际获得速率*** 。 + + > 举个例子:一位免费用户使用十堰电信-2节点,节点上标有 10Mbps | x 0.8 字样,那么ta所能获得的理论带宽为12*0.8=9.6(Mb)。但节点的总带宽是有限的(10Mb),所以高峰期时,ta实际可用的带宽可能低于9.6Mb。 + + + + + +## 管理面板 +### 管理面板打不开怎么办 + +这通常是由于各种神秘的网络问题造成的,也可能是我们的服务器遭到了严重的网络攻击,你可以尝试以下办法 + +- 更换设备访问 (如手机更换为电脑) +- 更换网络环境访问 (如 WiFi 更换为 4G、5G 网络) +- 更换浏览器访问 (推荐使用 Google Chrome / Microsoft Edge / Firefox) +- 查看[状态监控](https://kuma.openfrp.net/)页面中 #0 OpenFrp - 主站 是否正常 +- 查看在 OpenFrp 用户交流群 中是否有故障通知 + +### 增值服务相关 + +- 请在免费服务无法满足您的需求时购买增值服务。若您无法使用免费服务,那您购买增值服务也无法解决! +- **购买增值服务,您不会获得任何额外的官方支持**。若您遇到了问题,可以先试着加群,可能会有空闲的群友帮您解决。 +- 由于增值服务属于虚拟物品,售出不支持退款。 + +### 实名相关 +#### 怎么进行实名验证 + +1. 进入[OpenFrp管理面板 - 个人中心](https://console.openfrp.net/usercenter) +2. 点击 "实名验证" +3. 提交 您的身份证信息 + +> OpenFrp 如果发现您使用网络上的身份证号码进行实名,我们将有权要求您提供身份证照片,如无法提供,我们将按照用户协议进行处置.
+ +如果您为以下用户,您可以与我们进行真人验证。 +- 中国香港、中国台湾用户。 +- ~~没有大陆身份证号码的的外国人 (I think you have Public IP)~~ + +#### 我提交的实名信息安全吗 + +我们会严格按照国家相关法律法规进行保存数据,如有疑问,请参阅本站的[**个人信息处理与隐私保护政策**](https://www.openfrp.net/privacy/)。 + +## 其他 + + +### 使用 UDP 的游戏无法通过内网穿透访问 +- 部分使用 UDP 协议传输数据的游戏服务端要求远程端口与本地配置的端口一致才能正常进行通信。 + 如果使用 UDP 隧道的游戏正常无法连接,请尝试修改游戏服务器配置文件中的 监听端口,使其与隧道的 远程端口 一致。别忘了编辑隧道把 本地端口 也改成同样的值 +- 服务器不允许使用 UDP + +### 为什么不推荐用于 Minecraft 映射 + +Minecraft 对节点性能影响极为严重,我们 非常不推荐 您使用 OpenFrp 的服务穿透 Minecraft服务器 + +由于穿透 Minecraft 的用户过多,大部分免费节点的网卡 PPS 都远超出正常值。PPS 达到上限后,即使节点带宽只用了一半,剩下的一半带宽也无法被利用,相当于直接浪费了。 + + + + + + + + + + + diff --git a/src/use/index.md b/src/use/index.md new file mode 100644 index 0000000..c025f97 --- /dev/null +++ b/src/use/index.md @@ -0,0 +1,44 @@ +# 使用指南 + +你使用 FRPC,总会有自己的目的,对吧? + +但是,不要违反以下任何一点,否则账户将会被**封禁**。 + +* 禁止搭建任何色情、暴力、血腥,或违法国家法律的服务(如网站),查到即封。 +* 滥用 FRP 服务。 + +* 使用被公开的身份证 (由于无法确定您的身份,这可能会影响我们对**用户的查找**) + +## 对了,这里是一些提示: + +建站不建议套用 Cloudflare,可选用CN2节点,大陆访问很快 + +我们永远不推荐使用非大陆地区节点进行任何游戏的联机 + +不同于部分友商,我们也为 FRPC 提供了 TUI (Terminal UI),使您在 Linux,Windows 或者 Mac OS 这些平台上也能更容易的启动。 不过您需要准备你的 UserToken (用户秘钥)。 + +我们很讨厌不会学习的人,特别是计算机领域, + +在使用之前请仔细查看文档,因未阅读网站公告导致的业务损失或奇葩问题,或者没带眼镜提出的问题一律不予回复,多次询问将直接拉黑。 + +[CFU统一识别码编码:DLPYU2N4](https://cfu.openfrp.net/) + +## 远程桌面安全提示 + +映射远程桌面通常会带来出人意料的风险,因为巨硬的漏洞总是很多 + +如果您需要映射远程桌面,我们强烈建议您启用 Windows Update 来避免批量 0day 利用使得您的电脑遭到攻击,出现 WannaCry 等这样的悲剧。 +并设置强密码,而不是使用例如下面的这些 账户 / 密码。 +| 账户 | 密码 | +| --- | --- | +| Administrator | 无 | +| Administrator | 123456 | +| root | password | +| Administrator | (密码在提示中) | +| ... | 键盘上的连续字母 / 数字 | + +系统更新是您的朋友,不是敌人。 如果说有一个东西总是能在暴露的风险中拯救您,那一定是系统更新。 + +系统更新可能会迟到,但是只要到达,它总是能为守护您的电脑奉上您需要的力量。 + +如果您因为一些理由关闭了系统更新,请不要以任何形式把自己暴露在网络中,且必要的安装杀软。 \ No newline at end of file diff --git a/src/use/other/minecraft-service.md b/src/use/other/minecraft-service.md index 3c29c69..0cd449b 100644 --- a/src/use/other/minecraft-service.md +++ b/src/use/other/minecraft-service.md @@ -1,8 +1,9 @@ # Minecraft 相关网络帮助 -(个人建议本页面请前往[这里](https://github.com/ZGIT-Network/OpenFrp-Docs/blob/main/src/use/other/minecraft-service.md)查看) + + +本章不是从 0 开始帮你搭建的,您需要有一定的基础(知道这是什么)。 -本章不是从 0 开始帮你搭建的,您需要一定的基础(知道这是什么)。
我们非常建议您如果要使用 可以在以下地方下到 BungeeCord 类端: - [PaperMC(Waterfall + Velocity)](https://papermc.io/downloads#Waterfall) @@ -10,77 +11,39 @@ ## 关于 Proxy Protocol 的使用 -你可能会困扰,为什么后台反馈的玩家 IP 都是 `127.0.0.1` 呢?
-FRP 本质上只有转发流量的功能,并没有标明`我是从哪来? `
-而 Proxy Protocol 会帮他标明来源。
-这可以让服务器反馈真实的 IP ,避免某些IP级操作导致问题出现
+你可能会困扰,为什么后台反馈的玩家 IP 都是 `127.0.0.1` 呢? +FRP 本质上只有转发流量的功能,并没有标明`我是从哪来? ` +而 Proxy Protocol 会帮他标明来源。 +这可以让服务器反馈真实的 IP ,避免某些IP级操作导致问题出现 (如 ban-ip 牵连全服玩家,因为入网IP都是 127.0.0.1) --- ### 代理端方面设置一览 - - - - - - - - - - - - - - -
服务端类型 Velocity BungeeCord Paper (游戏版本>=1.19 且单端模式)
文件名称/路径 velocity.yaml config.yaml config/paper-global.yml
要修改的内容
(不要直接复制,
看修改的参数)
[advanced]
-connection-timeout = 5000
-# ...
-# 启用对 HAProxy 的兼容
-#(默认为Proxy-Protocol-V2)
-haproxy-protocol = true
-
listeners:
-- query_port: 25577
-  # 非完整 Config 请勿复制粘贴
-  # 将此项值改为 `true`
-  proxy_protocol: true
-
proxies:
-  proxy-protocol: true
-
重载指令
(在控制台输入
不要带斜杠)
/velocity reload/greload/paper reload
- -可选项(`Velocity`/`BungeeCord`): 下载[HaProxyDetector](https://github.com/andylizi/haproxy-detector/releases),并安装到`plugins`文件夹内,以便于不经过穿透也能连接到服务器游玩
+ +| 服务端类型 | Velocity | BungeeCord | Paper (游戏版本>=1.19 且单端模式) | +|------------|----------|------------|----------------------------------| +| 文件名称/路径 | velocity.toml | config.yaml | config/paper-global.yml | +| 要修改的内容
(不要直接复制,
看修改的参数) |
[advanced]
connection-timeout = 5000
# ...
# 启用对 HAProxy 的兼容
#(默认为Proxy-Protocol-V2)
haproxy-protocol = true
|
listeners:
- query_port: 25577
# 非完整 Config 请勿复制粘贴
# 将此项值改为 `true`
proxy_protocol: true
|
proxies:
proxy-protocol: true
| +| 重载指令
(在控制台输入
不要带斜杠) | /velocity reload | /greload | /paper reload | + +可选项(`Velocity`/`BungeeCord`): 下载[HaProxyDetector](https://github.com/andylizi/haproxy-detector/releases),并安装到`plugins`文件夹内,以便于不经过穿透也能连接到服务器游玩 --- ### Frpc 端 -别急,代理那边改完之后还没结束,Frpc那边也需要修改
+别急,代理那边改完之后还没结束,Frpc那边也需要修改 ~除非Frpc之后会自动加载HaProxy协议,否则这个地方依旧有用~ - - - - - - -
Frpc运行方式 配置文件 网页修改
修改方法与内容

-[您的隧道名称]
-# ...(这里代表其他配置项目)
-# 上面那行隧道名称是提醒你底下这行要插入哪里
-# 看位置和顺序
-proxy_protocol_version = v2
-
在网站的管理隧道内
-Minecraft穿透隧道这一行
-点击旁边的编辑
-在更多配置内插入以下内容,并保存
-·
-proxy_protocol_version = v2
-
- -注意:`记得保存并重新打开Frpc才能生效` +| Frpc运行方式 | 配置文件 | 网页修改 | +|--------------|----------|----------| +| 修改方法与内容 |
[您的隧道名称]
# ...(这里代表其他配置项目)
# 上面那行隧道名称是提醒你底下这行要插入哪里
# 看位置和顺序
proxy_protocol_version = v2
|
在网站的管理隧道内
Minecraft穿透隧道这一行
点击旁边的编辑
在更多配置内插入以下内容,并保存

proxy_protocol_version = v2
| + +注意: `记得保存并重新打开Frpc才能生效` ## Geyser JE+BE? -[Geyser](https://geysermc.org/) 是近几年来新型代理工具,但他可不就这么简单。
-他可以实现 Java Edtion 与 Bedrock Edtion 共同联机。
+[Geyser](https://geysermc.org/) 是近几年来新型代理工具,但他可不就这么简单。 +他可以实现 Java Edtion 与 Bedrock Edtion 共同联机。 目前,支持的加载方式如下 [下载地址](https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/) - 单独代理端 - Spigot 插件 @@ -96,78 +59,90 @@ proxy_protocol_version = v2 当然可以!你可以根据您的服务端来查看我们推荐的方案 #### BungeeCord与Velocity - + 在`Velocity`/`BungeeCord`上安装`Geyser`、`Floodgate`与[MultiLogin](https://github.com/CaaMoe/MultiLogin/releases)到plugins文件夹下
注意:`根据您的代理端类型下载插件,不要搞错了然后来怪我哦` - + 打开`velocity.toml`文件,修改并保存: ```toml online-mode = true ``` 这样就可以启动了,具体启动`Velocity`/`BungeeCord`的方法,在此就不再赘述 - - --- + +--- - 设置验证服务器的方式 - 在`plugins/multilogin/services`创建文件名为`yggdrasil.yml`
- 以下将以`LittleSkin`做举例
- 复制里面的[内容](https://pastebin.com/X1LbbNRk),并粘贴到文件内,保存后输入如下指令
- `multilogin reload` - - --- + 在`plugins/multilogin/services`创建文件名为`yggdrasil.yml`
+ 以下将以`LittleSkin`做举例
+ 复制里面的[内容](https://pastebin.com/X1LbbNRk),并粘贴到文件内,保存后输入如下指令
+ `multilogin reload` + +--- - 修改后端以同步UUID - 后端的所有服务端,都需要修改配置文件`server.properties`,并重启所有的服务端 + 后端的所有服务端,都需要修改配置文件`server.properties`,并重启所有的服务端 ```properties online-mode=false ``` - + 若后端包含`Paper`,建议额外修改并保存 (若Velocity的`player-info-forwarding-mode`设置为 `legacy`, 可视作为BungeeCord服务端) - - - - - - - -
旧版配置 paper.yml
Velocity BungeeCord
settings:
-  velocity-support:
-    enabled: true
-    online-mode: true
-    secret: <你自己Velocity服务端的>
-
settings: 
-    bungee-online-mode: true
-

- - - - - - - - - -
新版配置: config/paper-global.yml
Velocity BungeeCord
proxies:
+
+
+
+旧版配置 paper.yml :
+
+**Velocity** :
+
+```yml
+settings:
+velocity-support:
+enabled: true
+online-mode: true
+secret: <你自己Velocity服务端的>
+```
+
+**BungeeCord** :
+
+```yml
+settings:
+bungee-online-mode: true
+```
+
+
+
+新版配置 config/paper-global.yml :
+
+**Velocity** :
+
+```yml
+proxies:
   velocity:
     enabled: true
     online-mode: true
     secret: <你自己Velocity服务端的>
-
proxies:
+```
+
+**BungeeCord** :
+
+```yml
+proxies:
   bungee-cord:
     online-mode: true
-
- +``` + + + --- #### 单端 (不推荐,因为不能使用显示IP,Paper端除外) ~以下内容以Paper服务端做举例~ - + Paper的需要下载`Geyser`与`Floodgate` 并安装到`plugins文件夹`内
(请根据您的服务端类型下载插件) 且需要下载`Authlib-injector`,放入与`paper.jar`同文件夹下
并且你在使用`LittleSkin`提供的外置验证服务 - + 修改配置`server.properties`文件,找到并修改成如下,然后保存 ```properties online-mode=true - ``` + ``` 按如下方式启动(指令为模板,请按顺序放置参数): ```bash java -javaagent:authlib-injector.jar=https://littleskin.cn/api/yggdrasil -jar paper.jar diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..e7496b0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ES2022" + }, + "include": [ + "src/.vuepress/**/*.ts", + "src/.vuepress/**/*.vue" + ], + "exclude": [ + "node_modules" + ] +}