diff --git a/.env.template b/.env.template index 0937fa9a6..33c0a8203 100644 --- a/.env.template +++ b/.env.template @@ -1,6 +1,6 @@ AXIOS_PROXY_HOST=127.0.0.1 AXIOS_PROXY_PORT=33210 -MONGODB_UR= +MONGODB_URI= MY_MAIL= MAILE_CODE= TOKEN_KEY= \ No newline at end of file diff --git a/.gitignore b/.gitignore index bb50d5836..0f2b0d56e 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,6 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts -public/trainData/ -.vscode/ +/public/trainData/ +/.vscode/ platform.json \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index d916a93e2..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "editor.formatOnType": true, - "editor.formatOnSave": true , - "prettier.tabWidth": 2 -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 8f9e8fecd..ee5e92d62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,7 +58,7 @@ ENV PORT 3000 ENV MAX_USER '' ENV AXIOS_PROXY_HOST '' ENV AXIOS_PROXY_PORT '' -ENV MONGODB_UR '' +ENV MONGODB_URI '' ENV MY_MAIL '' ENV MAILE_CODE '' ENV TOKEN_KEY '' diff --git a/README.md b/README.md index a8e8c227b..6a9f458f7 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ``` AXIOS_PROXY_HOST=axios代理地址,目前 openai 接口都需要走代理,本机的话就填 127.0.0.1 AXIOS_PROXY_PORT=代理端口 -MONGODB_UR=mongo数据库地址 +MONGODB_URI=mongo数据库地址 MY_MAIL=发送验证码邮箱 MAILE_CODE=邮箱秘钥 TOKEN_KEY=随便填一个,用于生成和校验token @@ -15,22 +15,62 @@ TOKEN_KEY=随便填一个,用于生成和校验token ```bash pnpm dev ``` +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. ## 部署 + ```bash # 本地 docker 打包 -docker build -t imageName . -docker push imageName - -# 服务器拉取部署 -docker pull imageName -docker stop doc-gpt || true -docker rm doc-gpt || true -# 运行时才把参数写入 -docker run -d --network=host --name doc-gpt -e AXIOS_PROXY_HOST= -e AXIOS_PROXY_PORT= -e MAILE_CODE= -e TOKEN_KEY= -e MONGODB_UR= imageName +docker build -t imageName:tag . +docker push imageName:tag +``` + +服务器请准备好 docker, mongo,nginx和代理。 镜像走本机的代理,所以用 host,port改成代理的端口,clash一般都是7890。 + +```bash +# 服务器拉取部署, imageName 替换成镜像名 +docker pull imageName:tag +# 获取本地旧镜像ID +OLD_IMAGE_ID=$(docker images imageName -f "dangling=true" -q) +docker stop doc-gpt || true +docker rm doc-gpt || true +docker run -d --network=host --name doc-gpt \ + -e MAX_USER=50 \ + -e AXIOS_PROXY_HOST=127.0.0.1 \ + -e AXIOS_PROXY_PORT=7890 \ + -e MY_MAIL=your email\ + -e MAILE_CODE=your email code \ + -e TOKEN_KEY=任意一个内容 \ + -e MONGODB_URI="mongodb://aha:ROOT_root123@127.0.0.0:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false" \ + imageName:tag +docker logs doc-gpt + + +# 删除本地旧镜像 +if [ ! -z "$OLD_IMAGE_ID" ]; then + docker rmi $OLD_IMAGE_ID +fi +``` + +### docker 安装 +```bash +# 安装docker +curl -sSL https://get.daocloud.io/docker | sh +sudo systemctl start docker +``` + +### mongo 安装 +```bash +docker pull mongo:6.0.4 +docker stop mongo +docker rm mongo +docker run -d --name mongo \ + -e MONGO_INITDB_ROOT_USERNAME= \ + -e MONGO_INITDB_ROOT_PASSWORD= \ + -v /root/service/mongo:/data/db \ + mongo:6.0.4 ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. # 介绍页 @@ -70,4 +110,4 @@ Open [http://localhost:3000](http://localhost:3000) with your browser to see the ### 其他问题 还有其他问题,可以加我 wx,拉个交流群大家一起聊聊。 -![](/imgs/erweima.jpg) \ No newline at end of file +![](/icon/erweima.jpg) \ No newline at end of file diff --git a/next.config.js b/next.config.js index 04c3c8a67..e3e375924 100644 --- a/next.config.js +++ b/next.config.js @@ -6,7 +6,17 @@ const isDev = process.env.NODE_ENV === 'development'; const nextConfig = { output: 'standalone', reactStrictMode: false, - compress: true + compress: true, + images: { + remotePatterns: [ + { + protocol: 'https', + hostname: 'docgpt-1301319986.cos.ap-shanghai.myqcloud.com', + port: '', + pathname: '/**' + } + ] + } }; module.exports = nextConfig; diff --git a/package.json b/package.json index bebac8c95..16b84e745 100644 --- a/package.json +++ b/package.json @@ -19,11 +19,10 @@ "@next/font": "13.1.6", "@reduxjs/toolkit": "^1.9.3", "@tanstack/react-query": "^4.24.10", + "@types/nprogress": "^0.2.0", "axios": "^1.3.3", "crypto": "^1.0.1", "dayjs": "^1.11.7", - "eslint": "8.34.0", - "eslint-config-next": "13.1.6", "formidable": "^2.1.1", "framer-motion": "^9.0.6", "hyperdown": "^2.4.29", @@ -32,13 +31,16 @@ "mongoose": "^6.10.0", "next": "13.1.6", "nodemailer": "^6.9.1", + "nprogress": "^0.2.0", "openai": "^3.2.1", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "^7.43.1", "react-markdown": "^8.0.5", "react-syntax-highlighter": "^15.5.0", + "rehype-katex": "^6.0.2", "remark-gfm": "^3.0.1", + "remark-math": "^5.1.1", "sass": "^1.58.3", "sharp": "^0.31.3", "tunnel": "^0.0.6", @@ -56,6 +58,8 @@ "@types/react-syntax-highlighter": "^15.5.6", "@types/tunnel": "^0.0.3", "@types/uuid": "^9.0.1", + "eslint": "8.34.0", + "eslint-config-next": "13.1.6", "husky": "^8.0.3", "lint-staged": "^13.1.2", "prettier": "^2.8.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe816d878..2e642514b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,7 @@ specifiers: '@types/jsonwebtoken': ^9.0.1 '@types/node': 18.14.0 '@types/nodemailer': ^6.4.7 + '@types/nprogress': ^0.2.0 '@types/react': 18.0.28 '@types/react-dom': 18.0.11 '@types/react-syntax-highlighter': ^15.5.6 @@ -33,6 +34,7 @@ specifiers: mongoose: ^6.10.0 next: 13.1.6 nodemailer: ^6.9.1 + nprogress: ^0.2.0 openai: ^3.2.1 prettier: ^2.8.4 react: 18.2.0 @@ -40,7 +42,9 @@ specifiers: react-hook-form: ^7.43.1 react-markdown: ^8.0.5 react-syntax-highlighter: ^15.5.0 + rehype-katex: ^6.0.2 remark-gfm: ^3.0.1 + remark-math: ^5.1.1 sass: ^1.58.3 sharp: ^0.31.3 tunnel: ^0.0.6 @@ -57,11 +61,10 @@ dependencies: '@next/font': registry.npmmirror.com/@next/font/13.1.6 '@reduxjs/toolkit': registry.npmmirror.com/@reduxjs/toolkit/1.9.3_react@18.2.0 '@tanstack/react-query': registry.npmmirror.com/@tanstack/react-query/4.24.10_biqbaboplfbrettd7655fr4n2y + '@types/nprogress': registry.npmmirror.com/@types/nprogress/0.2.0 axios: registry.npmmirror.com/axios/1.3.3 crypto: registry.npmmirror.com/crypto/1.0.1 dayjs: registry.npmmirror.com/dayjs/1.11.7 - eslint: registry.npmmirror.com/eslint/8.34.0 - eslint-config-next: registry.npmmirror.com/eslint-config-next/13.1.6_7kw3g6rralp5ps6mg3uyzz6azm formidable: registry.npmmirror.com/formidable/2.1.1 framer-motion: registry.npmmirror.com/framer-motion/9.0.6_biqbaboplfbrettd7655fr4n2y hyperdown: registry.npmmirror.com/hyperdown/2.4.29 @@ -70,13 +73,16 @@ dependencies: mongoose: registry.npmmirror.com/mongoose/6.10.0 next: registry.npmmirror.com/next/13.1.6_wiv434v7erz4aedd5whhdwmpv4 nodemailer: registry.npmmirror.com/nodemailer/6.9.1 + nprogress: registry.npmmirror.com/nprogress/0.2.0 openai: registry.npmmirror.com/openai/3.2.1 react: registry.npmmirror.com/react/18.2.0 react-dom: registry.npmmirror.com/react-dom/18.2.0_react@18.2.0 react-hook-form: registry.npmmirror.com/react-hook-form/7.43.1_react@18.2.0 react-markdown: registry.npmmirror.com/react-markdown/8.0.5_pmekkgnqduwlme35zpnqhenc34 react-syntax-highlighter: registry.npmmirror.com/react-syntax-highlighter/15.5.0_react@18.2.0 + rehype-katex: registry.npmmirror.com/rehype-katex/6.0.2 remark-gfm: registry.npmmirror.com/remark-gfm/3.0.1 + remark-math: registry.npmmirror.com/remark-math/5.1.1 sass: registry.npmmirror.com/sass/1.58.3 sharp: registry.npmmirror.com/sharp/0.31.3 tunnel: registry.npmmirror.com/tunnel/0.0.6 @@ -94,6 +100,8 @@ devDependencies: '@types/react-syntax-highlighter': registry.npmmirror.com/@types/react-syntax-highlighter/15.5.6 '@types/tunnel': registry.npmmirror.com/@types/tunnel/0.0.3 '@types/uuid': registry.npmmirror.com/@types/uuid/9.0.1 + eslint: registry.npmmirror.com/eslint/8.34.0 + eslint-config-next: registry.npmmirror.com/eslint-config-next/13.1.6_7kw3g6rralp5ps6mg3uyzz6azm husky: registry.npmmirror.com/husky/8.0.3 lint-staged: registry.npmmirror.com/lint-staged/13.1.2 prettier: registry.npmmirror.com/prettier/2.8.4 @@ -1097,6 +1105,14 @@ packages: regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 dev: false + registry.npmmirror.com/@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz} + name: '@babel/runtime' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + registry.npmmirror.com/@babel/types/7.21.0: resolution: {integrity: sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.21.0.tgz} name: '@babel/types' @@ -2433,7 +2449,7 @@ packages: version: 11.10.6 dependencies: '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.13 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 '@emotion/hash': registry.npmmirror.com/@emotion/hash/0.9.0 '@emotion/memoize': registry.npmmirror.com/@emotion/memoize/0.8.0 '@emotion/serialize': registry.npmmirror.com/@emotion/serialize/1.1.1 @@ -2606,7 +2622,7 @@ packages: strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/@humanwhocodes/config-array/0.11.8: resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz} @@ -2619,20 +2635,20 @@ packages: minimatch: registry.npmmirror.com/minimatch/3.1.2 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} name: '@humanwhocodes/module-importer' version: 1.0.1 engines: {node: '>=12.22'} - dev: false + dev: true registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz} name: '@humanwhocodes/object-schema' version: 1.2.1 - dev: false + dev: true registry.npmmirror.com/@motionone/animation/10.15.1: resolution: {integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@motionone/animation/-/animation-10.15.1.tgz} @@ -2705,7 +2721,7 @@ packages: version: 13.1.6 dependencies: glob: registry.npmmirror.com/glob/7.1.7 - dev: false + dev: true registry.npmmirror.com/@next/font/13.1.6: resolution: {integrity: sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@next/font/-/font-13.1.6.tgz} @@ -2868,14 +2884,14 @@ packages: dependencies: '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 run-parallel: registry.npmmirror.com/run-parallel/1.2.0 - dev: false + dev: true registry.npmmirror.com/@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} name: '@nodelib/fs.stat' version: 2.0.5 engines: {node: '>= 8'} - dev: false + dev: true registry.npmmirror.com/@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} @@ -2885,7 +2901,7 @@ packages: dependencies: '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir/2.1.5 fastq: registry.npmmirror.com/fastq/1.15.0 - dev: false + dev: true registry.npmmirror.com/@pkgr/utils/2.3.1: resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgr/utils/-/utils-2.3.1.tgz} @@ -2899,7 +2915,7 @@ packages: picocolors: registry.npmmirror.com/picocolors/1.0.0 tiny-glob: registry.npmmirror.com/tiny-glob/0.2.9 tslib: registry.npmmirror.com/tslib/2.5.0 - dev: false + dev: true registry.npmmirror.com/@popperjs/core/2.11.6: resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@popperjs/core/-/core-2.11.6.tgz} @@ -2932,7 +2948,7 @@ packages: resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz} name: '@rushstack/eslint-patch' version: 1.2.0 - dev: false + dev: true registry.npmmirror.com/@swc/helpers/0.4.14: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/helpers/-/helpers-0.4.14.tgz} @@ -2997,7 +3013,7 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz} name: '@types/json5' version: 0.0.29 - dev: false + dev: true registry.npmmirror.com/@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz} @@ -3007,6 +3023,12 @@ packages: '@types/node': registry.npmmirror.com/@types/node/18.14.0 dev: true + registry.npmmirror.com/@types/katex/0.11.1: + resolution: {integrity: sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/katex/-/katex-0.11.1.tgz} + name: '@types/katex' + version: 0.11.1 + dev: false + registry.npmmirror.com/@types/lodash.mergewith/4.6.7: resolution: {integrity: sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz} name: '@types/lodash.mergewith' @@ -3048,6 +3070,12 @@ packages: '@types/node': registry.npmmirror.com/@types/node/18.14.0 dev: true + registry.npmmirror.com/@types/nprogress/0.2.0: + resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/nprogress/-/nprogress-0.2.0.tgz} + name: '@types/nprogress' + version: 0.2.0 + dev: false + registry.npmmirror.com/@types/parse-json/4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz} name: '@types/parse-json' @@ -3145,7 +3173,7 @@ packages: typescript: registry.npmmirror.com/typescript/4.9.5 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/@typescript-eslint/scope-manager/5.52.0: resolution: {integrity: sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz} @@ -3155,14 +3183,14 @@ packages: dependencies: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.52.0 '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.52.0 - dev: false + dev: true registry.npmmirror.com/@typescript-eslint/types/5.52.0: resolution: {integrity: sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.52.0.tgz} name: '@typescript-eslint/types' version: 5.52.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false + dev: true registry.npmmirror.com/@typescript-eslint/typescript-estree/5.52.0_typescript@4.9.5: resolution: {integrity: sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz} @@ -3186,7 +3214,7 @@ packages: typescript: registry.npmmirror.com/typescript/4.9.5 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/@typescript-eslint/visitor-keys/5.52.0: resolution: {integrity: sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz} @@ -3196,7 +3224,7 @@ packages: dependencies: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.52.0 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 - dev: false + dev: true registry.npmmirror.com/@zag-js/element-size/0.3.1: resolution: {integrity: sha512-jR5j4G//bRzcxwAACWi9EfITnwjNmn10LxF4NmALrdZU7/PNWP3uUCdhCxd/0SCyeiJXUl0yvD57rWAbKPs1nw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@zag-js/element-size/-/element-size-0.3.1.tgz} @@ -3219,7 +3247,7 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: registry.npmmirror.com/acorn/8.8.2 - dev: false + dev: true registry.npmmirror.com/acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz} @@ -3227,7 +3255,7 @@ packages: version: 8.8.2 engines: {node: '>=0.4.0'} hasBin: true - dev: false + dev: true registry.npmmirror.com/aggregate-error/3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz} @@ -3248,7 +3276,7 @@ packages: fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 json-schema-traverse: registry.npmmirror.com/json-schema-traverse/0.4.1 uri-js: registry.npmmirror.com/uri-js/4.4.1 - dev: false + dev: true registry.npmmirror.com/ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz} @@ -3264,6 +3292,7 @@ packages: name: ansi-regex version: 5.0.1 engines: {node: '>=8'} + dev: true registry.npmmirror.com/ansi-regex/6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz} @@ -3288,6 +3317,7 @@ packages: engines: {node: '>=8'} dependencies: color-convert: registry.npmmirror.com/color-convert/2.0.1 + dev: true registry.npmmirror.com/ansi-styles/6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz} @@ -3310,7 +3340,7 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} name: argparse version: 2.0.1 - dev: false + dev: true registry.npmmirror.com/aria-hidden/1.2.2_pmekkgnqduwlme35zpnqhenc34: resolution: {integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.2.tgz} @@ -3336,7 +3366,7 @@ packages: version: 5.1.3 dependencies: deep-equal: registry.npmmirror.com/deep-equal/2.2.0 - dev: false + dev: true registry.npmmirror.com/array-includes/3.1.6: resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.6.tgz} @@ -3349,14 +3379,14 @@ packages: es-abstract: registry.npmmirror.com/es-abstract/1.21.1 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 is-string: registry.npmmirror.com/is-string/1.0.7 - dev: false + dev: true registry.npmmirror.com/array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} name: array-union version: 2.1.0 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/array.prototype.flat/1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz} @@ -3368,7 +3398,7 @@ packages: define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables/1.0.0 - dev: false + dev: true registry.npmmirror.com/array.prototype.flatmap/1.3.1: resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz} @@ -3380,7 +3410,7 @@ packages: define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables/1.0.0 - dev: false + dev: true registry.npmmirror.com/array.prototype.tosorted/1.1.1: resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz} @@ -3392,7 +3422,7 @@ packages: es-abstract: registry.npmmirror.com/es-abstract/1.21.1 es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables/1.0.0 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 - dev: false + dev: true registry.npmmirror.com/asap/2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz} @@ -3404,7 +3434,7 @@ packages: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz} name: ast-types-flow version: 0.0.7 - dev: false + dev: true registry.npmmirror.com/astral-regex/2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} @@ -3424,14 +3454,14 @@ packages: name: available-typed-arrays version: 1.0.5 engines: {node: '>= 0.4'} - dev: false + dev: true registry.npmmirror.com/axe-core/4.6.3: resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axe-core/-/axe-core-4.6.3.tgz} name: axe-core version: 4.6.3 engines: {node: '>=4'} - dev: false + dev: true registry.npmmirror.com/axios/0.26.1: resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-0.26.1.tgz} @@ -3461,7 +3491,7 @@ packages: version: 3.1.1 dependencies: deep-equal: registry.npmmirror.com/deep-equal/2.2.0 - dev: false + dev: true registry.npmmirror.com/babel-plugin-macros/3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz} @@ -3469,7 +3499,7 @@ packages: version: 3.1.0 engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.13 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 cosmiconfig: registry.npmmirror.com/cosmiconfig/7.1.0 resolve: registry.npmmirror.com/resolve/1.22.1 dev: false @@ -3484,7 +3514,7 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} name: balanced-match version: 1.0.2 - dev: false + dev: true registry.npmmirror.com/base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} @@ -3523,7 +3553,7 @@ packages: dependencies: balanced-match: registry.npmmirror.com/balanced-match/1.0.2 concat-map: registry.npmmirror.com/concat-map/0.0.1 - dev: false + dev: true registry.npmmirror.com/braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} @@ -3564,14 +3594,12 @@ packages: dependencies: function-bind: registry.npmmirror.com/function-bind/1.1.1 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 - dev: false registry.npmmirror.com/callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} name: callsites version: 3.1.0 engines: {node: '>=6'} - dev: false registry.npmmirror.com/caniuse-lite/1.0.30001456: resolution: {integrity: sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001456.tgz} @@ -3604,7 +3632,7 @@ packages: dependencies: ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 supports-color: registry.npmmirror.com/supports-color/7.2.0 - dev: false + dev: true registry.npmmirror.com/character-entities-legacy/1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} @@ -3774,6 +3802,13 @@ packages: version: 2.0.3 dev: false + registry.npmmirror.com/commander/8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz} + name: commander + version: 8.3.0 + engines: {node: '>= 12'} + dev: false + registry.npmmirror.com/commander/9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-9.5.0.tgz} name: commander @@ -3791,7 +3826,7 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} name: concat-map version: 0.0.1 - dev: false + dev: true registry.npmmirror.com/convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} @@ -3829,6 +3864,7 @@ packages: path-key: registry.npmmirror.com/path-key/3.1.1 shebang-command: registry.npmmirror.com/shebang-command/2.0.0 which: registry.npmmirror.com/which/2.0.2 + dev: true registry.npmmirror.com/crypto/1.0.1: resolution: {integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto/-/crypto-1.0.1.tgz} @@ -3854,7 +3890,7 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz} name: damerau-levenshtein version: 1.0.8 - dev: false + dev: true registry.npmmirror.com/dayjs/1.11.7: resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz} @@ -3873,7 +3909,7 @@ packages: optional: true dependencies: ms: registry.npmmirror.com/ms/2.1.3 - dev: false + dev: true registry.npmmirror.com/debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} @@ -3927,7 +3963,7 @@ packages: which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive/1.0.2 which-collection: registry.npmmirror.com/which-collection/1.0.1 which-typed-array: registry.npmmirror.com/which-typed-array/1.1.9 - dev: false + dev: true registry.npmmirror.com/deep-extend/0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz} @@ -3940,14 +3976,14 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} name: deep-is version: 0.1.4 - dev: false + dev: true registry.npmmirror.com/define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz} name: define-lazy-prop version: 2.0.0 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/define-properties/1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz} @@ -3957,7 +3993,7 @@ packages: dependencies: has-property-descriptors: registry.npmmirror.com/has-property-descriptors/1.0.0 object-keys: registry.npmmirror.com/object-keys/1.1.1 - dev: false + dev: true registry.npmmirror.com/delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} @@ -4009,7 +4045,7 @@ packages: engines: {node: '>=8'} dependencies: path-type: registry.npmmirror.com/path-type/4.0.0 - dev: false + dev: true registry.npmmirror.com/doctrine/2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} @@ -4018,7 +4054,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: esutils: registry.npmmirror.com/esutils/2.0.3 - dev: false + dev: true registry.npmmirror.com/doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz} @@ -4027,7 +4063,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: registry.npmmirror.com/esutils/2.0.3 - dev: false + dev: true registry.npmmirror.com/eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz} @@ -4053,6 +4089,7 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz} name: emoji-regex version: 9.2.2 + dev: true registry.npmmirror.com/end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} @@ -4070,7 +4107,7 @@ packages: dependencies: graceful-fs: registry.npmmirror.com/graceful-fs/4.2.10 tapable: registry.npmmirror.com/tapable/2.2.1 - dev: false + dev: true registry.npmmirror.com/error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} @@ -4119,7 +4156,7 @@ packages: typed-array-length: registry.npmmirror.com/typed-array-length/1.0.4 unbox-primitive: registry.npmmirror.com/unbox-primitive/1.0.2 which-typed-array: registry.npmmirror.com/which-typed-array/1.1.9 - dev: false + dev: true registry.npmmirror.com/es-get-iterator/1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz} @@ -4135,7 +4172,7 @@ packages: is-string: registry.npmmirror.com/is-string/1.0.7 isarray: registry.npmmirror.com/isarray/2.0.5 stop-iteration-iterator: registry.npmmirror.com/stop-iteration-iterator/1.0.0 - dev: false + dev: true registry.npmmirror.com/es-set-tostringtag/2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz} @@ -4146,7 +4183,7 @@ packages: get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 has: registry.npmmirror.com/has/1.0.3 has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/es-shim-unscopables/1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz} @@ -4154,7 +4191,7 @@ packages: version: 1.0.0 dependencies: has: registry.npmmirror.com/has/1.0.3 - dev: false + dev: true registry.npmmirror.com/es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} @@ -4165,7 +4202,7 @@ packages: is-callable: registry.npmmirror.com/is-callable/1.2.7 is-date-object: registry.npmmirror.com/is-date-object/1.0.5 is-symbol: registry.npmmirror.com/is-symbol/1.0.4 - dev: false + dev: true registry.npmmirror.com/escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} @@ -4179,7 +4216,6 @@ packages: name: escape-string-regexp version: 4.0.0 engines: {node: '>=10'} - dev: false registry.npmmirror.com/escape-string-regexp/5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} @@ -4214,7 +4250,7 @@ packages: transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color - dev: false + dev: true registry.npmmirror.com/eslint-import-resolver-node/0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz} @@ -4226,7 +4262,7 @@ packages: resolve: registry.npmmirror.com/resolve/1.22.1 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/eslint-import-resolver-typescript/3.5.3_mvgyw3chnqkp6sgfmmtihyjpnm: resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz} @@ -4249,7 +4285,7 @@ packages: synckit: registry.npmmirror.com/synckit/0.8.5 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/eslint-module-utils/2.7.4_cvrl34cvgpgac5pvqi7ag6zw7e: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz} @@ -4282,7 +4318,7 @@ packages: eslint-import-resolver-typescript: registry.npmmirror.com/eslint-import-resolver-typescript/3.5.3_mvgyw3chnqkp6sgfmmtihyjpnm transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/eslint-plugin-import/2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz} @@ -4318,7 +4354,7 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: false + dev: true registry.npmmirror.com/eslint-plugin-jsx-a11y/6.7.1_eslint@8.34.0: resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz} @@ -4329,7 +4365,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.13 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 aria-query: registry.npmmirror.com/aria-query/5.1.3 array-includes: registry.npmmirror.com/array-includes/3.1.6 array.prototype.flatmap: registry.npmmirror.com/array.prototype.flatmap/1.3.1 @@ -4346,7 +4382,7 @@ packages: object.entries: registry.npmmirror.com/object.entries/1.1.6 object.fromentries: registry.npmmirror.com/object.fromentries/2.0.6 semver: registry.npmmirror.com/semver/6.3.0 - dev: false + dev: true registry.npmmirror.com/eslint-plugin-react-hooks/4.6.0_eslint@8.34.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz} @@ -4358,7 +4394,7 @@ packages: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: registry.npmmirror.com/eslint/8.34.0 - dev: false + dev: true registry.npmmirror.com/eslint-plugin-react/7.32.2_eslint@8.34.0: resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz} @@ -4385,7 +4421,7 @@ packages: resolve: registry.npmmirror.com/resolve/2.0.0-next.4 semver: registry.npmmirror.com/semver/6.3.0 string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall/4.0.8 - dev: false + dev: true registry.npmmirror.com/eslint-scope/7.1.1: resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz} @@ -4395,7 +4431,7 @@ packages: dependencies: esrecurse: registry.npmmirror.com/esrecurse/4.3.0 estraverse: registry.npmmirror.com/estraverse/5.3.0 - dev: false + dev: true registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.34.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz} @@ -4408,21 +4444,21 @@ packages: dependencies: eslint: registry.npmmirror.com/eslint/8.34.0 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0 - dev: false + dev: true registry.npmmirror.com/eslint-visitor-keys/2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} name: eslint-visitor-keys version: 2.1.0 engines: {node: '>=10'} - dev: false + dev: true registry.npmmirror.com/eslint-visitor-keys/3.3.0: resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz} name: eslint-visitor-keys version: 3.3.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false + dev: true registry.npmmirror.com/eslint/8.34.0: resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.34.0.tgz} @@ -4472,7 +4508,7 @@ packages: text-table: registry.npmmirror.com/text-table/0.2.0 transitivePeerDependencies: - supports-color - dev: false + dev: true registry.npmmirror.com/espree/9.4.1: resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/espree/-/espree-9.4.1.tgz} @@ -4483,7 +4519,7 @@ packages: acorn: registry.npmmirror.com/acorn/8.8.2 acorn-jsx: registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.8.2 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 - dev: false + dev: true registry.npmmirror.com/esquery/1.4.2: resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esquery/-/esquery-1.4.2.tgz} @@ -4492,7 +4528,7 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: registry.npmmirror.com/estraverse/5.3.0 - dev: false + dev: true registry.npmmirror.com/esrecurse/4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} @@ -4501,21 +4537,21 @@ packages: engines: {node: '>=4.0'} dependencies: estraverse: registry.npmmirror.com/estraverse/5.3.0 - dev: false + dev: true registry.npmmirror.com/estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} name: estraverse version: 5.3.0 engines: {node: '>=4.0'} - dev: false + dev: true registry.npmmirror.com/esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} name: esutils version: 2.0.3 engines: {node: '>=0.10.0'} - dev: false + dev: true registry.npmmirror.com/execa/6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-6.1.0.tgz} @@ -4551,7 +4587,7 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} name: fast-deep-equal version: 3.1.3 - dev: false + dev: true registry.npmmirror.com/fast-glob/3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} @@ -4564,19 +4600,19 @@ packages: glob-parent: registry.npmmirror.com/glob-parent/5.1.2 merge2: registry.npmmirror.com/merge2/1.4.1 micromatch: registry.npmmirror.com/micromatch/4.0.5 - dev: false + dev: true registry.npmmirror.com/fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} name: fast-json-stable-stringify version: 2.1.0 - dev: false + dev: true registry.npmmirror.com/fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} name: fast-levenshtein version: 2.0.6 - dev: false + dev: true registry.npmmirror.com/fast-xml-parser/4.1.2: resolution: {integrity: sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz} @@ -4594,7 +4630,7 @@ packages: version: 1.15.0 dependencies: reusify: registry.npmmirror.com/reusify/1.0.4 - dev: false + dev: true registry.npmmirror.com/fault/1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-1.0.4.tgz} @@ -4611,7 +4647,7 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: registry.npmmirror.com/flat-cache/3.0.4 - dev: false + dev: true registry.npmmirror.com/fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} @@ -4635,7 +4671,7 @@ packages: dependencies: locate-path: registry.npmmirror.com/locate-path/6.0.0 path-exists: registry.npmmirror.com/path-exists/4.0.0 - dev: false + dev: true registry.npmmirror.com/flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz} @@ -4645,13 +4681,13 @@ packages: dependencies: flatted: registry.npmmirror.com/flatted/3.2.7 rimraf: registry.npmmirror.com/rimraf/3.0.2 - dev: false + dev: true registry.npmmirror.com/flatted/3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz} name: flatted version: 3.2.7 - dev: false + dev: true registry.npmmirror.com/focus-lock/0.11.6: resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/focus-lock/-/focus-lock-0.11.6.tgz} @@ -4680,7 +4716,7 @@ packages: version: 0.3.3 dependencies: is-callable: registry.npmmirror.com/is-callable/1.2.7 - dev: false + dev: true registry.npmmirror.com/form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz} @@ -4747,7 +4783,7 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} name: fs.realpath version: 1.0.0 - dev: false + dev: true registry.npmmirror.com/fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} @@ -4763,7 +4799,6 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} name: function-bind version: 1.1.1 - dev: false registry.npmmirror.com/function.prototype.name/1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz} @@ -4775,13 +4810,13 @@ packages: define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 functions-have-names: registry.npmmirror.com/functions-have-names/1.2.3 - dev: false + dev: true registry.npmmirror.com/functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} name: functions-have-names version: 1.2.3 - dev: false + dev: true registry.npmmirror.com/get-intrinsic/1.2.0: resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz} @@ -4791,7 +4826,6 @@ packages: function-bind: registry.npmmirror.com/function-bind/1.1.1 has: registry.npmmirror.com/has/1.0.3 has-symbols: registry.npmmirror.com/has-symbols/1.0.3 - dev: false registry.npmmirror.com/get-nonce/1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz} @@ -4815,13 +4849,13 @@ packages: dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 - dev: false + dev: true registry.npmmirror.com/get-tsconfig/4.4.0: resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.4.0.tgz} name: get-tsconfig version: 4.4.0 - dev: false + dev: true registry.npmmirror.com/github-from-package/0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/github-from-package/-/github-from-package-0.0.0.tgz} @@ -4836,7 +4870,6 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: registry.npmmirror.com/is-glob/4.0.3 - dev: false registry.npmmirror.com/glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} @@ -4845,7 +4878,7 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: registry.npmmirror.com/is-glob/4.0.3 - dev: false + dev: true registry.npmmirror.com/glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.1.7.tgz} @@ -4858,7 +4891,7 @@ packages: minimatch: registry.npmmirror.com/minimatch/3.1.2 once: registry.npmmirror.com/once/1.4.0 path-is-absolute: registry.npmmirror.com/path-is-absolute/1.0.1 - dev: false + dev: true registry.npmmirror.com/glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} @@ -4871,7 +4904,7 @@ packages: minimatch: registry.npmmirror.com/minimatch/3.1.2 once: registry.npmmirror.com/once/1.4.0 path-is-absolute: registry.npmmirror.com/path-is-absolute/1.0.1 - dev: false + dev: true registry.npmmirror.com/globals/13.20.0: resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-13.20.0.tgz} @@ -4880,7 +4913,7 @@ packages: engines: {node: '>=8'} dependencies: type-fest: registry.npmmirror.com/type-fest/0.20.2 - dev: false + dev: true registry.npmmirror.com/globalthis/1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} @@ -4889,13 +4922,13 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: registry.npmmirror.com/define-properties/1.2.0 - dev: false + dev: true registry.npmmirror.com/globalyzer/0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globalyzer/-/globalyzer-0.1.0.tgz} name: globalyzer version: 0.1.0 - dev: false + dev: true registry.npmmirror.com/globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} @@ -4909,7 +4942,7 @@ packages: ignore: registry.npmmirror.com/ignore/5.2.4 merge2: registry.npmmirror.com/merge2/1.4.1 slash: registry.npmmirror.com/slash/3.0.0 - dev: false + dev: true registry.npmmirror.com/globby/13.1.3: resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-13.1.3.tgz} @@ -4922,13 +4955,13 @@ packages: ignore: registry.npmmirror.com/ignore/5.2.4 merge2: registry.npmmirror.com/merge2/1.4.1 slash: registry.npmmirror.com/slash/4.0.0 - dev: false + dev: true registry.npmmirror.com/globrex/0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globrex/-/globrex-0.1.2.tgz} name: globrex version: 0.1.2 - dev: false + dev: true registry.npmmirror.com/gopd/1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} @@ -4936,25 +4969,25 @@ packages: version: 1.0.1 dependencies: get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 - dev: false + dev: true registry.npmmirror.com/graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz} name: graceful-fs version: 4.2.10 - dev: false + dev: true registry.npmmirror.com/grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz} name: grapheme-splitter version: 1.0.4 - dev: false + dev: true registry.npmmirror.com/has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} name: has-bigints version: 1.0.2 - dev: false + dev: true registry.npmmirror.com/has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} @@ -4968,7 +5001,7 @@ packages: name: has-flag version: 4.0.0 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} @@ -4976,21 +5009,20 @@ packages: version: 1.0.0 dependencies: get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 - dev: false + dev: true registry.npmmirror.com/has-proto/1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} name: has-proto version: 1.0.1 engines: {node: '>= 0.4'} - dev: false + dev: true registry.npmmirror.com/has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} name: has-symbols version: 1.0.3 engines: {node: '>= 0.4'} - dev: false registry.npmmirror.com/has-tostringtag/1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} @@ -4999,7 +5031,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-symbols: registry.npmmirror.com/has-symbols/1.0.3 - dev: false + dev: true registry.npmmirror.com/has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} @@ -5008,6 +5040,28 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: registry.npmmirror.com/function-bind/1.1.1 + + registry.npmmirror.com/hast-util-from-parse5/7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz} + name: hast-util-from-parse5 + version: 7.1.2 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + hastscript: registry.npmmirror.com/hastscript/7.2.0 + property-information: registry.npmmirror.com/property-information/6.2.0 + vfile: registry.npmmirror.com/vfile/5.3.7 + vfile-location: registry.npmmirror.com/vfile-location/4.1.0 + web-namespaces: registry.npmmirror.com/web-namespaces/2.0.1 + dev: false + + registry.npmmirror.com/hast-util-is-element/2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz} + name: hast-util-is-element + version: 2.1.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 dev: false registry.npmmirror.com/hast-util-parse-selector/2.2.5: @@ -5016,6 +5070,25 @@ packages: version: 2.2.5 dev: false + registry.npmmirror.com/hast-util-parse-selector/3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz} + name: hast-util-parse-selector + version: 3.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + dev: false + + registry.npmmirror.com/hast-util-to-text/3.1.2: + resolution: {integrity: sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz} + name: hast-util-to-text + version: 3.1.2 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element/2.1.3 + unist-util-find-after: registry.npmmirror.com/unist-util-find-after/4.0.1 + dev: false + registry.npmmirror.com/hast-util-whitespace/2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz} name: hast-util-whitespace @@ -5034,6 +5107,18 @@ packages: space-separated-tokens: registry.npmmirror.com/space-separated-tokens/1.1.5 dev: false + registry.npmmirror.com/hastscript/7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-7.2.0.tgz} + name: hastscript + version: 7.2.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens/2.0.3 + hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector/3.1.1 + property-information: registry.npmmirror.com/property-information/6.2.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens/2.0.2 + dev: false + registry.npmmirror.com/hexoid/1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hexoid/-/hexoid-1.0.0.tgz} name: hexoid @@ -5093,7 +5178,7 @@ packages: name: ignore version: 5.2.4 engines: {node: '>= 4'} - dev: false + dev: true registry.npmmirror.com/immer/9.0.19: resolution: {integrity: sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immer/-/immer-9.0.19.tgz} @@ -5115,14 +5200,13 @@ packages: dependencies: parent-module: registry.npmmirror.com/parent-module/1.0.1 resolve-from: registry.npmmirror.com/resolve-from/4.0.0 - dev: false registry.npmmirror.com/imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} name: imurmurhash version: 0.1.4 engines: {node: '>=0.8.19'} - dev: false + dev: true registry.npmmirror.com/indent-string/4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz} @@ -5138,13 +5222,12 @@ packages: dependencies: once: registry.npmmirror.com/once/1.4.0 wrappy: registry.npmmirror.com/wrappy/1.0.2 - dev: false + dev: true registry.npmmirror.com/inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} name: inherits version: 2.0.4 - dev: false registry.npmmirror.com/ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} @@ -5167,7 +5250,7 @@ packages: get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 has: registry.npmmirror.com/has/1.0.3 side-channel: registry.npmmirror.com/side-channel/1.0.4 - dev: false + dev: true registry.npmmirror.com/invariant/2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz} @@ -5206,7 +5289,7 @@ packages: dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-array-buffer/3.0.1: resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz} @@ -5216,7 +5299,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 is-typed-array: registry.npmmirror.com/is-typed-array/1.1.10 - dev: false + dev: true registry.npmmirror.com/is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} @@ -5236,7 +5319,7 @@ packages: version: 1.0.4 dependencies: has-bigints: registry.npmmirror.com/has-bigints/1.0.2 - dev: false + dev: true registry.npmmirror.com/is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} @@ -5255,7 +5338,7 @@ packages: dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-buffer/2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz} @@ -5269,7 +5352,7 @@ packages: name: is-callable version: 1.2.7 engines: {node: '>= 0.4'} - dev: false + dev: true registry.npmmirror.com/is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz} @@ -5277,7 +5360,6 @@ packages: version: 2.11.0 dependencies: has: registry.npmmirror.com/has/1.0.3 - dev: false registry.npmmirror.com/is-date-object/1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} @@ -5286,7 +5368,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-decimal/1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz} @@ -5300,14 +5382,13 @@ packages: version: 2.2.1 engines: {node: '>=8'} hasBin: true - dev: false + dev: true registry.npmmirror.com/is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} name: is-extglob version: 2.1.1 engines: {node: '>=0.10.0'} - dev: false registry.npmmirror.com/is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} @@ -5330,7 +5411,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: registry.npmmirror.com/is-extglob/2.1.1 - dev: false registry.npmmirror.com/is-hexadecimal/1.0.4: resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} @@ -5342,14 +5422,14 @@ packages: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-map/-/is-map-2.0.2.tgz} name: is-map version: 2.0.2 - dev: false + dev: true registry.npmmirror.com/is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} name: is-negative-zero version: 2.0.2 engines: {node: '>= 0.4'} - dev: false + dev: true registry.npmmirror.com/is-number-object/1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} @@ -5358,7 +5438,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} @@ -5371,7 +5451,7 @@ packages: name: is-path-inside version: 3.0.3 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/is-plain-obj/4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz} @@ -5388,13 +5468,13 @@ packages: dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-set/2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-set/-/is-set-2.0.2.tgz} name: is-set version: 2.0.2 - dev: false + dev: true registry.npmmirror.com/is-shared-array-buffer/1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} @@ -5402,7 +5482,7 @@ packages: version: 1.0.2 dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 - dev: false + dev: true registry.npmmirror.com/is-stream/3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz} @@ -5418,7 +5498,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-symbol/1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} @@ -5427,7 +5507,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-symbols: registry.npmmirror.com/has-symbols/1.0.3 - dev: false + dev: true registry.npmmirror.com/is-typed-array/1.1.10: resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.10.tgz} @@ -5440,13 +5520,13 @@ packages: for-each: registry.npmmirror.com/for-each/0.3.3 gopd: registry.npmmirror.com/gopd/1.0.1 has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.npmmirror.com/is-weakmap/2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.1.tgz} name: is-weakmap version: 2.0.1 - dev: false + dev: true registry.npmmirror.com/is-weakref/1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} @@ -5454,7 +5534,7 @@ packages: version: 1.0.2 dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 - dev: false + dev: true registry.npmmirror.com/is-weakset/2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.2.tgz} @@ -5463,7 +5543,7 @@ packages: dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 - dev: false + dev: true registry.npmmirror.com/is-wsl/2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} @@ -5472,30 +5552,30 @@ packages: engines: {node: '>=8'} dependencies: is-docker: registry.npmmirror.com/is-docker/2.2.1 - dev: false + dev: true registry.npmmirror.com/isarray/2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} name: isarray version: 2.0.5 - dev: false + dev: true registry.npmmirror.com/isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} name: isexe version: 2.0.0 + dev: true registry.npmmirror.com/js-sdsl/4.3.0: resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.3.0.tgz} name: js-sdsl version: 4.3.0 - dev: false + dev: true registry.npmmirror.com/js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} name: js-tokens version: 4.0.0 - dev: false registry.npmmirror.com/js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} @@ -5504,7 +5584,7 @@ packages: hasBin: true dependencies: argparse: registry.npmmirror.com/argparse/2.0.1 - dev: false + dev: true registry.npmmirror.com/json-parse-even-better-errors/2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} @@ -5516,13 +5596,13 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} name: json-schema-traverse version: 0.4.1 - dev: false + dev: true registry.npmmirror.com/json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} name: json-stable-stringify-without-jsonify version: 1.0.1 - dev: false + dev: true registry.npmmirror.com/json5/1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz} @@ -5531,7 +5611,7 @@ packages: hasBin: true dependencies: minimist: registry.npmmirror.com/minimist/1.2.8 - dev: false + dev: true registry.npmmirror.com/jsonwebtoken/9.0.0: resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz} @@ -5553,7 +5633,7 @@ packages: dependencies: array-includes: registry.npmmirror.com/array-includes/3.1.6 object.assign: registry.npmmirror.com/object.assign/4.1.4 - dev: false + dev: true registry.npmmirror.com/jwa/1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jwa/-/jwa-1.4.1.tgz} @@ -5581,6 +5661,24 @@ packages: engines: {node: '>=12.0.0'} dev: false + registry.npmmirror.com/katex/0.13.24: + resolution: {integrity: sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/katex/-/katex-0.13.24.tgz} + name: katex + version: 0.13.24 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander/8.3.0 + dev: false + + registry.npmmirror.com/katex/0.15.6: + resolution: {integrity: sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/katex/-/katex-0.15.6.tgz} + name: katex + version: 0.15.6 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander/8.3.0 + dev: false + registry.npmmirror.com/kleur/4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} name: kleur @@ -5592,7 +5690,7 @@ packages: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz} name: language-subtag-registry version: 0.3.22 - dev: false + dev: true registry.npmmirror.com/language-tags/1.0.5: resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/language-tags/-/language-tags-1.0.5.tgz} @@ -5600,7 +5698,7 @@ packages: version: 1.0.5 dependencies: language-subtag-registry: registry.npmmirror.com/language-subtag-registry/0.3.22 - dev: false + dev: true registry.npmmirror.com/levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} @@ -5610,7 +5708,7 @@ packages: dependencies: prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 type-check: registry.npmmirror.com/type-check/0.4.0 - dev: false + dev: true registry.npmmirror.com/lilconfig/2.0.6: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz} @@ -5678,13 +5776,13 @@ packages: engines: {node: '>=10'} dependencies: p-locate: registry.npmmirror.com/p-locate/5.0.0 - dev: false + dev: true registry.npmmirror.com/lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} name: lodash.merge version: 4.6.2 - dev: false + dev: true registry.npmmirror.com/lodash.mergewith/4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz} @@ -5723,7 +5821,6 @@ packages: hasBin: true dependencies: js-tokens: registry.npmmirror.com/js-tokens/4.0.0 - dev: false registry.npmmirror.com/lowlight/1.20.0: resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowlight/-/lowlight-1.20.0.tgz} @@ -5741,7 +5838,6 @@ packages: engines: {node: '>=10'} dependencies: yallist: registry.npmmirror.com/yallist/4.0.0 - dev: false registry.npmmirror.com/markdown-table/3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz} @@ -5859,6 +5955,16 @@ packages: - supports-color dev: false + registry.npmmirror.com/mdast-util-math/2.0.2: + resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-math/-/mdast-util-math-2.0.2.tgz} + name: mdast-util-math + version: 2.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + longest-streak: registry.npmmirror.com/longest-streak/3.1.0 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown/1.5.0 + dev: false + registry.npmmirror.com/mdast-util-phrasing/3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz} name: mdast-util-phrasing @@ -5924,7 +6030,7 @@ packages: name: merge2 version: 1.4.1 engines: {node: '>= 8'} - dev: false + dev: true registry.npmmirror.com/micromark-core-commonmark/1.0.6: resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz} @@ -6036,6 +6142,20 @@ packages: micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 dev: false + registry.npmmirror.com/micromark-extension-math/2.0.2: + resolution: {integrity: sha512-cFv2B/E4pFPBBFuGgLHkkNiFAIQv08iDgPH2HCuR2z3AUgMLecES5Cq7AVtwOtZeRrbA80QgMUk8VVW0Z+D2FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-math/-/micromark-extension-math-2.0.2.tgz} + name: micromark-extension-math + version: 2.0.2 + dependencies: + '@types/katex': registry.npmmirror.com/@types/katex/0.11.1 + katex: registry.npmmirror.com/katex/0.13.24 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space/1.0.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character/1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol/1.0.1 + micromark-util-types: registry.npmmirror.com/micromark-util-types/1.0.2 + uvu: registry.npmmirror.com/uvu/0.5.6 + dev: false + registry.npmmirror.com/micromark-factory-destination/1.0.0: resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz} name: micromark-factory-destination @@ -6239,6 +6359,7 @@ packages: dependencies: braces: registry.npmmirror.com/braces/3.0.2 picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true registry.npmmirror.com/mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} @@ -6283,13 +6404,12 @@ packages: version: 3.1.2 dependencies: brace-expansion: registry.npmmirror.com/brace-expansion/1.1.11 - dev: false + dev: true registry.npmmirror.com/minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} name: minimist version: 1.2.8 - dev: false registry.npmmirror.com/mkdirp-classic/0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz} @@ -6374,7 +6494,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} name: ms version: 2.1.3 - dev: false registry.npmmirror.com/nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} @@ -6394,7 +6513,7 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} name: natural-compare version: 1.4.0 - dev: false + dev: true registry.npmmirror.com/next/13.1.6_wiv434v7erz4aedd5whhdwmpv4: resolution: {integrity: sha512-hHlbhKPj9pW+Cymvfzc15lvhaOZ54l+8sXDXJWm3OBNBzgrVj6hwGPmqqsXg40xO1Leq+kXpllzRPuncpC0Phw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/next/-/next-13.1.6.tgz} @@ -6481,12 +6600,17 @@ packages: path-key: registry.npmmirror.com/path-key/4.0.0 dev: true + registry.npmmirror.com/nprogress/0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz} + name: nprogress + version: 0.2.0 + dev: false + registry.npmmirror.com/object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} name: object-assign version: 4.1.1 engines: {node: '>=0.10.0'} - dev: false registry.npmmirror.com/object-inspect/1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} @@ -6501,14 +6625,14 @@ packages: dependencies: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 - dev: false + dev: true registry.npmmirror.com/object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} name: object-keys version: 1.1.1 engines: {node: '>= 0.4'} - dev: false + dev: true registry.npmmirror.com/object.assign/4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} @@ -6520,7 +6644,7 @@ packages: define-properties: registry.npmmirror.com/define-properties/1.2.0 has-symbols: registry.npmmirror.com/has-symbols/1.0.3 object-keys: registry.npmmirror.com/object-keys/1.1.1 - dev: false + dev: true registry.npmmirror.com/object.entries/1.1.6: resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.6.tgz} @@ -6531,7 +6655,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 - dev: false + dev: true registry.npmmirror.com/object.fromentries/2.0.6: resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.6.tgz} @@ -6542,7 +6666,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 - dev: false + dev: true registry.npmmirror.com/object.hasown/1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.2.tgz} @@ -6551,7 +6675,7 @@ packages: dependencies: define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 - dev: false + dev: true registry.npmmirror.com/object.values/1.1.6: resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.6.tgz} @@ -6562,7 +6686,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 - dev: false + dev: true registry.npmmirror.com/once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} @@ -6570,7 +6694,6 @@ packages: version: 1.4.0 dependencies: wrappy: registry.npmmirror.com/wrappy/1.0.2 - dev: false registry.npmmirror.com/onetime/5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} @@ -6599,7 +6722,7 @@ packages: define-lazy-prop: registry.npmmirror.com/define-lazy-prop/2.0.0 is-docker: registry.npmmirror.com/is-docker/2.2.1 is-wsl: registry.npmmirror.com/is-wsl/2.2.0 - dev: false + dev: true registry.npmmirror.com/openai/3.2.1: resolution: {integrity: sha512-762C9BNlJPbjjlWZi4WYK9iM2tAVAv0uUp1UmI34vb0CN5T2mjB/qM6RYBmNKMh/dN9fC+bxqPwWJZUTWW052A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/openai/-/openai-3.2.1.tgz} @@ -6624,7 +6747,7 @@ packages: prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 type-check: registry.npmmirror.com/type-check/0.4.0 word-wrap: registry.npmmirror.com/word-wrap/1.2.3 - dev: false + dev: true registry.npmmirror.com/p-limit/3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} @@ -6633,7 +6756,7 @@ packages: engines: {node: '>=10'} dependencies: yocto-queue: registry.npmmirror.com/yocto-queue/0.1.0 - dev: false + dev: true registry.npmmirror.com/p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} @@ -6642,7 +6765,7 @@ packages: engines: {node: '>=10'} dependencies: p-limit: registry.npmmirror.com/p-limit/3.1.0 - dev: false + dev: true registry.npmmirror.com/p-map/4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz} @@ -6660,7 +6783,6 @@ packages: engines: {node: '>=6'} dependencies: callsites: registry.npmmirror.com/callsites/3.1.0 - dev: false registry.npmmirror.com/parse-entities/2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz} @@ -6687,25 +6809,32 @@ packages: lines-and-columns: registry.npmmirror.com/lines-and-columns/1.2.4 dev: false + registry.npmmirror.com/parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz} + name: parse5 + version: 6.0.1 + dev: false + registry.npmmirror.com/path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} name: path-exists version: 4.0.0 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} name: path-is-absolute version: 1.0.1 engines: {node: '>=0.10.0'} - dev: false + dev: true registry.npmmirror.com/path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} name: path-key version: 3.1.1 engines: {node: '>=8'} + dev: true registry.npmmirror.com/path-key/4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz} @@ -6718,20 +6847,17 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} name: path-parse version: 1.0.7 - dev: false registry.npmmirror.com/path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} name: path-type version: 4.0.0 engines: {node: '>=8'} - dev: false registry.npmmirror.com/picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} name: picocolors version: 1.0.0 - dev: false registry.npmmirror.com/picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} @@ -6784,7 +6910,7 @@ packages: name: prelude-ls version: 1.2.1 engines: {node: '>= 0.8.0'} - dev: false + dev: true registry.npmmirror.com/prettier/2.8.4: resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier/-/prettier-2.8.4.tgz} @@ -6816,7 +6942,6 @@ packages: loose-envify: registry.npmmirror.com/loose-envify/1.4.0 object-assign: registry.npmmirror.com/object-assign/4.1.1 react-is: registry.npmmirror.com/react-is/16.13.1 - dev: false registry.npmmirror.com/property-information/5.6.0: resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-5.6.0.tgz} @@ -6852,7 +6977,6 @@ packages: name: punycode version: 2.3.0 engines: {node: '>=6'} - dev: false registry.npmmirror.com/qs/6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz} @@ -6867,7 +6991,7 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} name: queue-microtask version: 1.2.3 - dev: false + dev: true registry.npmmirror.com/rc/1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz} @@ -6889,7 +7013,7 @@ packages: peerDependencies: react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.13 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 react: registry.npmmirror.com/react/18.2.0 dev: false @@ -6924,7 +7048,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.13 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 '@types/react': registry.npmmirror.com/@types/react/18.0.28 focus-lock: registry.npmmirror.com/focus-lock/0.11.6 prop-types: registry.npmmirror.com/prop-types/15.8.1 @@ -6950,7 +7074,6 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} name: react-is version: 16.13.1 - dev: false registry.npmmirror.com/react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz} @@ -7110,7 +7233,7 @@ packages: name: redux version: 4.2.1 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.20.13 + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.0 dev: false registry.npmmirror.com/refractor/3.6.0: @@ -7127,7 +7250,6 @@ packages: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} name: regenerator-runtime version: 0.13.11 - dev: false registry.npmmirror.com/regexp.prototype.flags/1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz} @@ -7138,13 +7260,39 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 functions-have-names: registry.npmmirror.com/functions-have-names/1.2.3 - dev: false + dev: true registry.npmmirror.com/regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz} name: regexpp version: 3.2.0 engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/rehype-katex/6.0.2: + resolution: {integrity: sha512-C4gDAlS1+l0hJqctyiU64f9CvT00S03qV1T6HiMzbSuLBgWUtcqydWHY9OpKrm0SpkK16FNd62CDKyWLwV2ppg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-katex/-/rehype-katex-6.0.2.tgz} + name: rehype-katex + version: 6.0.2 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + '@types/katex': registry.npmmirror.com/@types/katex/0.11.1 + hast-util-to-text: registry.npmmirror.com/hast-util-to-text/3.1.2 + katex: registry.npmmirror.com/katex/0.15.6 + rehype-parse: registry.npmmirror.com/rehype-parse/8.0.4 + unified: registry.npmmirror.com/unified/10.1.2 + unist-util-remove-position: registry.npmmirror.com/unist-util-remove-position/4.0.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.2 + dev: false + + registry.npmmirror.com/rehype-parse/8.0.4: + resolution: {integrity: sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-parse/-/rehype-parse-8.0.4.tgz} + name: rehype-parse + version: 8.0.4 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast/2.3.4 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5/7.1.2 + parse5: registry.npmmirror.com/parse5/6.0.1 + unified: registry.npmmirror.com/unified/10.1.2 dev: false registry.npmmirror.com/remark-gfm/3.0.1: @@ -7160,6 +7308,17 @@ packages: - supports-color dev: false + registry.npmmirror.com/remark-math/5.1.1: + resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-math/-/remark-math-5.1.1.tgz} + name: remark-math + version: 5.1.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast/3.0.10 + mdast-util-math: registry.npmmirror.com/mdast-util-math/2.0.2 + micromark-extension-math: registry.npmmirror.com/micromark-extension-math/2.0.2 + unified: registry.npmmirror.com/unified/10.1.2 + dev: false + registry.npmmirror.com/remark-parse/10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.1.tgz} name: remark-parse @@ -7194,7 +7353,6 @@ packages: name: resolve-from version: 4.0.0 engines: {node: '>=4'} - dev: false registry.npmmirror.com/resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} @@ -7205,7 +7363,6 @@ packages: is-core-module: registry.npmmirror.com/is-core-module/2.11.0 path-parse: registry.npmmirror.com/path-parse/1.0.7 supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 - dev: false registry.npmmirror.com/resolve/2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.4.tgz} @@ -7216,7 +7373,7 @@ packages: is-core-module: registry.npmmirror.com/is-core-module/2.11.0 path-parse: registry.npmmirror.com/path-parse/1.0.7 supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 - dev: false + dev: true registry.npmmirror.com/restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz} @@ -7233,7 +7390,7 @@ packages: name: reusify version: 1.0.4 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false + dev: true registry.npmmirror.com/rfdc/1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz} @@ -7248,7 +7405,7 @@ packages: hasBin: true dependencies: glob: registry.npmmirror.com/glob/7.2.3 - dev: false + dev: true registry.npmmirror.com/run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} @@ -7256,7 +7413,7 @@ packages: version: 1.2.0 dependencies: queue-microtask: registry.npmmirror.com/queue-microtask/1.2.3 - dev: false + dev: true registry.npmmirror.com/rxjs/7.8.0: resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-7.8.0.tgz} @@ -7289,7 +7446,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 is-regex: registry.npmmirror.com/is-regex/1.1.4 - dev: false + dev: true registry.npmmirror.com/saslprep/1.0.3: resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/saslprep/-/saslprep-1.0.3.tgz} @@ -7327,7 +7484,7 @@ packages: name: semver version: 6.3.0 hasBin: true - dev: false + dev: true registry.npmmirror.com/semver/7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz} @@ -7337,7 +7494,6 @@ packages: hasBin: true dependencies: lru-cache: registry.npmmirror.com/lru-cache/6.0.0 - dev: false registry.npmmirror.com/sharp/0.31.3: resolution: {integrity: sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sharp/-/sharp-0.31.3.tgz} @@ -7363,12 +7519,14 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: registry.npmmirror.com/shebang-regex/3.0.0 + dev: true registry.npmmirror.com/shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} name: shebang-regex version: 3.0.0 engines: {node: '>=8'} + dev: true registry.npmmirror.com/side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} @@ -7378,7 +7536,6 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 object-inspect: registry.npmmirror.com/object-inspect/1.12.3 - dev: false registry.npmmirror.com/sift/16.0.1: resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sift/-/sift-16.0.1.tgz} @@ -7421,14 +7578,14 @@ packages: name: slash version: 3.0.0 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/slash/4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz} name: slash version: 4.0.0 engines: {node: '>=12'} - dev: false + dev: true registry.npmmirror.com/slice-ansi/3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz} @@ -7521,7 +7678,7 @@ packages: engines: {node: '>= 0.4'} dependencies: internal-slot: registry.npmmirror.com/internal-slot/1.0.5 - dev: false + dev: true registry.npmmirror.com/string-argv/0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-argv/-/string-argv-0.3.1.tgz} @@ -7565,7 +7722,7 @@ packages: internal-slot: registry.npmmirror.com/internal-slot/1.0.5 regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags/1.4.3 side-channel: registry.npmmirror.com/side-channel/1.0.4 - dev: false + dev: true registry.npmmirror.com/string.prototype.trimend/1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz} @@ -7575,7 +7732,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 - dev: false + dev: true registry.npmmirror.com/string.prototype.trimstart/1.0.6: resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz} @@ -7585,7 +7742,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 define-properties: registry.npmmirror.com/define-properties/1.2.0 es-abstract: registry.npmmirror.com/es-abstract/1.21.1 - dev: false + dev: true registry.npmmirror.com/string_decoder/1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} @@ -7602,6 +7759,7 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: registry.npmmirror.com/ansi-regex/5.0.1 + dev: true registry.npmmirror.com/strip-ansi/7.0.1: resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz} @@ -7617,7 +7775,7 @@ packages: name: strip-bom version: 3.0.0 engines: {node: '>=4'} - dev: false + dev: true registry.npmmirror.com/strip-final-newline/3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} @@ -7638,7 +7796,7 @@ packages: name: strip-json-comments version: 3.1.1 engines: {node: '>=8'} - dev: false + dev: true registry.npmmirror.com/strnum/1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strnum/-/strnum-1.0.5.tgz} @@ -7697,14 +7855,13 @@ packages: engines: {node: '>=8'} dependencies: has-flag: registry.npmmirror.com/has-flag/4.0.0 - dev: false + dev: true registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} name: supports-preserve-symlinks-flag version: 1.0.0 engines: {node: '>= 0.4'} - dev: false registry.npmmirror.com/synckit/0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/synckit/-/synckit-0.8.5.tgz} @@ -7714,14 +7871,14 @@ packages: dependencies: '@pkgr/utils': registry.npmmirror.com/@pkgr/utils/2.3.1 tslib: registry.npmmirror.com/tslib/2.5.0 - dev: false + dev: true registry.npmmirror.com/tapable/2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} name: tapable version: 2.2.1 engines: {node: '>=6'} - dev: false + dev: true registry.npmmirror.com/tar-fs/2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-fs/-/tar-fs-2.1.1.tgz} @@ -7751,7 +7908,7 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz} name: text-table version: 0.2.0 - dev: false + dev: true registry.npmmirror.com/through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} @@ -7766,7 +7923,7 @@ packages: dependencies: globalyzer: registry.npmmirror.com/globalyzer/0.1.0 globrex: registry.npmmirror.com/globrex/0.1.2 - dev: false + dev: true registry.npmmirror.com/tiny-invariant/1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz} @@ -7825,13 +7982,12 @@ packages: json5: registry.npmmirror.com/json5/1.0.2 minimist: registry.npmmirror.com/minimist/1.2.8 strip-bom: registry.npmmirror.com/strip-bom/3.0.0 - dev: false + dev: true registry.npmmirror.com/tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} name: tslib version: 1.14.1 - dev: false registry.npmmirror.com/tslib/2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz} @@ -7855,7 +8011,7 @@ packages: dependencies: tslib: registry.npmmirror.com/tslib/1.14.1 typescript: registry.npmmirror.com/typescript/4.9.5 - dev: false + dev: true registry.npmmirror.com/tunnel-agent/0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz} @@ -7879,14 +8035,14 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 - dev: false + dev: true registry.npmmirror.com/type-fest/0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} name: type-fest version: 0.20.2 engines: {node: '>=10'} - dev: false + dev: true registry.npmmirror.com/type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz} @@ -7903,7 +8059,7 @@ packages: call-bind: registry.npmmirror.com/call-bind/1.0.2 for-each: registry.npmmirror.com/for-each/0.3.3 is-typed-array: registry.npmmirror.com/is-typed-array/1.1.10 - dev: false + dev: true registry.npmmirror.com/typescript/4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz} @@ -7911,7 +8067,6 @@ packages: version: 4.9.5 engines: {node: '>=4.2.0'} hasBin: true - dev: false registry.npmmirror.com/unbox-primitive/1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} @@ -7922,7 +8077,7 @@ packages: has-bigints: registry.npmmirror.com/has-bigints/1.0.2 has-symbols: registry.npmmirror.com/has-symbols/1.0.3 which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive/1.0.2 - dev: false + dev: true registry.npmmirror.com/unified/10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz} @@ -7938,6 +8093,15 @@ packages: vfile: registry.npmmirror.com/vfile/5.3.7 dev: false + registry.npmmirror.com/unist-util-find-after/4.0.1: + resolution: {integrity: sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz} + name: unist-util-find-after + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-is: registry.npmmirror.com/unist-util-is/5.2.0 + dev: false + registry.npmmirror.com/unist-util-generated/2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz} name: unist-util-generated @@ -7958,6 +8122,15 @@ packages: '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 dev: false + registry.npmmirror.com/unist-util-remove-position/4.0.2: + resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz} + name: unist-util-remove-position + version: 4.0.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + unist-util-visit: registry.npmmirror.com/unist-util-visit/4.1.2 + dev: false + registry.npmmirror.com/unist-util-stringify-position/3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz} name: unist-util-stringify-position @@ -7991,7 +8164,7 @@ packages: version: 4.4.1 dependencies: punycode: registry.npmmirror.com/punycode/2.3.0 - dev: false + dev: true registry.npmmirror.com/use-callback-ref/1.3.0_pmekkgnqduwlme35zpnqhenc34: resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz} @@ -8075,6 +8248,15 @@ packages: sade: registry.npmmirror.com/sade/1.8.1 dev: false + registry.npmmirror.com/vfile-location/4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-location/-/vfile-location-4.1.0.tgz} + name: vfile-location + version: 4.1.0 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist/2.0.6 + vfile: registry.npmmirror.com/vfile/5.3.7 + dev: false + registry.npmmirror.com/vfile-message/3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz} name: vfile-message @@ -8095,6 +8277,12 @@ packages: vfile-message: registry.npmmirror.com/vfile-message/3.1.4 dev: false + registry.npmmirror.com/web-namespaces/2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz} + name: web-namespaces + version: 2.0.1 + dev: false + registry.npmmirror.com/webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz} name: webidl-conversions @@ -8122,7 +8310,7 @@ packages: is-number-object: registry.npmmirror.com/is-number-object/1.0.7 is-string: registry.npmmirror.com/is-string/1.0.7 is-symbol: registry.npmmirror.com/is-symbol/1.0.4 - dev: false + dev: true registry.npmmirror.com/which-collection/1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-collection/-/which-collection-1.0.1.tgz} @@ -8133,7 +8321,7 @@ packages: is-set: registry.npmmirror.com/is-set/2.0.2 is-weakmap: registry.npmmirror.com/is-weakmap/2.0.1 is-weakset: registry.npmmirror.com/is-weakset/2.0.2 - dev: false + dev: true registry.npmmirror.com/which-typed-array/1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.9.tgz} @@ -8147,7 +8335,7 @@ packages: gopd: registry.npmmirror.com/gopd/1.0.1 has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 is-typed-array: registry.npmmirror.com/is-typed-array/1.1.10 - dev: false + dev: true registry.npmmirror.com/which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} @@ -8157,13 +8345,14 @@ packages: hasBin: true dependencies: isexe: registry.npmmirror.com/isexe/2.0.0 + dev: true registry.npmmirror.com/word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz} name: word-wrap version: 1.2.3 engines: {node: '>=0.10.0'} - dev: false + dev: true registry.npmmirror.com/wrap-ansi/6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz} @@ -8191,7 +8380,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} name: wrappy version: 1.0.2 - dev: false registry.npmmirror.com/xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} @@ -8204,7 +8392,6 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} name: yallist version: 4.0.0 - dev: false registry.npmmirror.com/yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} @@ -8225,7 +8412,7 @@ packages: name: yocto-queue version: 0.1.0 engines: {node: '>=10'} - dev: false + dev: true registry.npmmirror.com/zustand/4.3.5_immer@9.0.19+react@18.2.0: resolution: {integrity: sha512-2iPUzfwx+g3f0PagOMz2vDO9mZzEp2puFpNe7vrAymVPOEIEUjCPkC4/zy84eAscxIWmTU4j9g6upXYkJdzEFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand/-/zustand-4.3.5.tgz} diff --git a/public/imgs/human.png b/public/icon/human.png similarity index 100% rename from public/imgs/human.png rename to public/icon/human.png diff --git a/public/icon/logo.png b/public/icon/logo.png new file mode 100644 index 000000000..93670150a Binary files /dev/null and b/public/icon/logo.png differ diff --git a/public/icon/menu-left.svg b/public/icon/menu-left.svg deleted file mode 100644 index 7ed50b75d..000000000 --- a/public/icon/menu-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/imgs/erweima.jpg b/public/imgs/erweima.jpg deleted file mode 100644 index 268b6e8e6..000000000 Binary files a/public/imgs/erweima.jpg and /dev/null differ diff --git a/public/imgs/modelAvatar.png b/public/imgs/modelAvatar.png deleted file mode 100644 index 264453d9d..000000000 Binary files a/public/imgs/modelAvatar.png and /dev/null differ diff --git a/public/logo.svg b/public/logo.svg deleted file mode 100644 index f58a84dce..000000000 --- a/public/logo.svg +++ /dev/null @@ -1 +0,0 @@ -2.5D \ No newline at end of file diff --git a/src/api/chat.ts b/src/api/chat.ts index 9184b415a..2d49c674f 100644 --- a/src/api/chat.ts +++ b/src/api/chat.ts @@ -1,5 +1,6 @@ import { GET, POST, DELETE } from './request'; import { ChatItemType, ChatSiteType, ChatSiteItemType } from '@/types/chat'; +import axios from 'axios'; /** * 获取一个聊天框的ID @@ -56,7 +57,7 @@ export const postChatGptPrompt = ({ }); /* 获取 Chat 的 Event 对象,进行持续通信 */ export const getChatGPTSendEvent = (chatId: string, windowId: string) => - new EventSource(`/api/chat/chatGpt?chatId=${chatId}&windowId=${windowId}`); + new EventSource(`/api/chat/chatGpt?chatId=${chatId}&windowId=${windowId}&date=${Date.now()}`); /** * 删除最后一句 diff --git a/src/api/request.ts b/src/api/request.ts index 3ab06f6df..a5df11ee5 100644 --- a/src/api/request.ts +++ b/src/api/request.ts @@ -34,7 +34,7 @@ function responseSuccess(response: AxiosResponse) { */ function checkRes(data: ResponseDataType) { if (data === undefined) { - console.log(data, 'data is empty'); + console.error(data, 'data is empty'); return Promise.reject('服务器异常'); } else if (data.code < 200 || data.code >= 400) { return Promise.reject(data.message); @@ -49,21 +49,20 @@ function responseError(err: any) { console.error('请求错误', err); if (!err) { - return Promise.reject('未知错误'); + return Promise.reject({ message: '未知错误' }); } if (typeof err === 'string') { - return Promise.reject(err); + return Promise.reject({ message: err }); } if (err.response) { // 有报错响应 const res = err.response; - /* token过期,判断请求token与本地是否相同,若不同需要重发 */ if (res.data.code in TOKEN_ERROR_CODE) { clearToken(); - return Promise.reject('token过期,重新登录'); + return Promise.reject({ message: 'token过期,重新登录' }); } } - return Promise.reject('未知错误'); + return Promise.reject(err); } /* 创建请求实例 */ diff --git a/src/components/Layout/auth.tsx b/src/components/Layout/auth.tsx index a9e85fcfe..5f495b987 100644 --- a/src/components/Layout/auth.tsx +++ b/src/components/Layout/auth.tsx @@ -7,6 +7,7 @@ import { useGlobalStore } from '@/store/global'; import { useQuery } from '@tanstack/react-query'; const unAuthPage: { [key: string]: boolean } = { + '/': true, '/login': true, '/chat': true }; @@ -24,10 +25,10 @@ const Auth = ({ children }: { children: JSX.Element }) => { useQuery( [router.pathname, userInfo], () => { - setLoading(true); if (unAuthPage[router.pathname] === true || userInfo) { return setLoading(false); } else { + setLoading(true); return getTokenLogin(); } }, @@ -38,7 +39,7 @@ const Auth = ({ children }: { children: JSX.Element }) => { } }, onError(error) { - console.log(error); + console.error(error); router.push('/login'); toast(); }, @@ -48,7 +49,7 @@ const Auth = ({ children }: { children: JSX.Element }) => { } ); - return userInfo || unAuthPage[router.pathname] === true ? <>{children} : null; + return userInfo || unAuthPage[router.pathname] === true ? children : null; }; export default Auth; diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx index 924456169..7641a77f4 100644 --- a/src/components/Layout/index.tsx +++ b/src/components/Layout/index.tsx @@ -43,18 +43,16 @@ const navbarList = [ const Layout = ({ children }: { children: JSX.Element }) => { const { isPc } = useScreen(); const router = useRouter(); - const { Loading } = useLoading({ - defaultLoading: true - }); + const { Loading } = useLoading({ defaultLoading: true }); const { loading } = useGlobalStore(); return ( <> {!unShowLayoutRoute[router.pathname] ? ( - + {isPc ? ( <> - + diff --git a/src/components/Layout/navbar.tsx b/src/components/Layout/navbar.tsx index 2dcfd2f40..dd9dc8517 100644 --- a/src/components/Layout/navbar.tsx +++ b/src/components/Layout/navbar.tsx @@ -3,7 +3,6 @@ import { Box, Flex } from '@chakra-ui/react'; import Image from 'next/image'; import { useRouter } from 'next/router'; import Icon from '../Icon'; -import styles from './style.module.scss'; export enum NavbarTypeEnum { normal = 'normal', @@ -35,7 +34,7 @@ const Navbar = ({ > {/* logo */} - + {/* 导航列表 */} @@ -47,6 +46,7 @@ const Navbar = ({ alignItems={'center'} justifyContent={'center'} onClick={() => + !item.activeLink.includes(router.pathname) && router.push(item.link, undefined, { shallow: true }) diff --git a/src/components/Layout/navbarPhone.tsx b/src/components/Layout/navbarPhone.tsx index ca7a49c67..251a0a791 100644 --- a/src/components/Layout/navbarPhone.tsx +++ b/src/components/Layout/navbarPhone.tsx @@ -45,15 +45,15 @@ const NavbarPhone = ({ - + - - + + {navbarList.map((item) => ( { @@ -61,8 +61,7 @@ const NavbarPhone = ({ onClose(); }} cursor={'pointer'} - fontSize={'sm'} - h={'65px'} + h={'60px'} borderRadius={'md'} {...(item.activeLink.includes(router.pathname) ? { diff --git a/src/components/Markdown/index.module.scss b/src/components/Markdown/index.module.scss index 40ebc8453..d3b64603a 100644 --- a/src/components/Markdown/index.module.scss +++ b/src/components/Markdown/index.module.scss @@ -27,96 +27,356 @@ opacity: 1; } } + +.markdown > *:first-child { + margin-top: 0 !important; +} +.markdown > *:last-child { + margin-bottom: 0 !important; +} +.markdown a.absent { + color: #cc0000; +} +.markdown a.anchor { + bottom: 0; + cursor: pointer; + display: block; + left: 0; + margin-left: -30px; + padding-left: 30px; + position: absolute; + top: 0; +} +.markdown h1, +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + cursor: text; + font-weight: bold; + margin: 20px 0 10px; + padding: 0; + position: relative; +} +.markdown h1 .mini-icon-link, +.markdown h2 .mini-icon-link, +.markdown h3 .mini-icon-link, +.markdown h4 .mini-icon-link, +.markdown h5 .mini-icon-link, +.markdown h6 .mini-icon-link { + color: #000000; + display: none; +} +.markdown h1:hover a.anchor, +.markdown h2:hover a.anchor, +.markdown h3:hover a.anchor, +.markdown h4:hover a.anchor, +.markdown h5:hover a.anchor, +.markdown h6:hover a.anchor { + line-height: 1; + margin-left: -22px; + padding-left: 0; + text-decoration: none; + top: 15%; +} +.markdown h1:hover a.anchor .mini-icon-link, +.markdown h2:hover a.anchor .mini-icon-link, +.markdown h3:hover a.anchor .mini-icon-link, +.markdown h4:hover a.anchor .mini-icon-link, +.markdown h5:hover a.anchor .mini-icon-link, +.markdown h6:hover a.anchor .mini-icon-link { + display: inline-block; +} +.markdown h1 tt, +.markdown h1 code, +.markdown h2 tt, +.markdown h2 code, +.markdown h3 tt, +.markdown h3 code, +.markdown h4 tt, +.markdown h4 code, +.markdown h5 tt, +.markdown h5 code, +.markdown h6 tt, +.markdown h6 code { + font-size: inherit; +} +.markdown h1 { + color: #000000; + font-size: 28px; +} +.markdown h2 { + color: #000000; + font-size: 24px; +} +.markdown h3 { + font-size: 18px; +} +.markdown h4 { + font-size: 16px; +} +.markdown h5 { + font-size: 14px; +} +.markdown h6 { + color: #777777; + font-size: 14px; +} +.markdown p, +.markdown blockquote, +.markdown ul, +.markdown ol, +.markdown dl, +.markdown table, +.markdown pre { + margin: 15px 0; +} +.markdown hr { + background: url('https://a248.e.akamai.net/assets.github.com/assets/primer/markdown/dirty-shade-350cca8f57223ebd53603021b2e670f4f319f1b7.png') + repeat-x scroll 0 0 transparent; + border: 0 none; + color: #cccccc; + height: 4px; + padding: 0; +} +.markdown > h2:first-child, +.markdown > h1:first-child, +.markdown > h1:first-child + h2, +.markdown > h3:first-child, +.markdown > h4:first-child, +.markdown > h5:first-child, +.markdown > h6:first-child { + margin-top: 0; + padding-top: 0; +} +.markdown a:first-child h1, +.markdown a:first-child h2, +.markdown a:first-child h3, +.markdown a:first-child h4, +.markdown a:first-child h5, +.markdown a:first-child h6 { + margin-top: 0; + padding-top: 0; +} +.markdown h1 + p, +.markdown h2 + p, +.markdown h3 + p, +.markdown h4 + p, +.markdown h5 + p, +.markdown h6 + p { + margin-top: 0; +} +.markdown li p.first { + display: inline-block; +} +.markdown ul, +.markdown ol { + padding-left: 30px; +} +.markdown ul.no-list, +.markdown ol.no-list { + list-style-type: none; + padding: 0; +} +.markdown ul li > *:first-child, +.markdown ol li > *:first-child { + margin-top: 0; +} +.markdown ul ul, +.markdown ul ol, +.markdown ol ol, +.markdown ol ul { + margin-bottom: 0; +} +.markdown dl { + padding: 0; +} +.markdown dl dt { + font-size: 14px; + font-style: italic; + font-weight: bold; + margin: 15px 0 5px; + padding: 0; +} +.markdown dl dt:first-child { + padding: 0; +} +.markdown dl dt > *:first-child { + margin-top: 0; +} +.markdown dl dt > *:last-child { + margin-bottom: 0; +} +.markdown dl dd { + margin: 0 0 15px; + padding: 0 15px; +} +.markdown dl dd > *:first-child { + margin-top: 0; +} +.markdown dl dd > *:last-child { + margin-bottom: 0; +} +.markdown blockquote { + border-left: 4px solid #dddddd; + color: #777777; + padding: 0 15px; +} +.markdown blockquote > *:first-child { + margin-top: 0; +} +.markdown blockquote > *:last-child { + margin-bottom: 0; +} +.markdown table th { + font-weight: bold; +} +.markdown table th, +.markdown table td { + border: 1px solid #cccccc; + padding: 6px 13px; +} +.markdown table tr { + background-color: #ffffff; + border-top: 1px solid #cccccc; +} +.markdown table tr:nth-child(2n) { + background-color: #f0f0f0; +} +.markdown img { + max-width: 100%; +} +.markdown span.frame { + display: block; + overflow: hidden; +} +.markdown span.frame > span { + border: 1px solid #dddddd; + display: block; + float: left; + margin: 13px 0 0; + overflow: hidden; + padding: 7px; + width: auto; +} +.markdown span.frame span img { + display: block; + float: left; +} +.markdown span.frame span span { + clear: both; + color: #333333; + display: block; + padding: 5px 0 0; +} +.markdown span.align-center { + clear: both; + display: block; + overflow: hidden; +} +.markdown span.align-center > span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} +.markdown span.align-center span img { + margin: 0 auto; + text-align: center; +} +.markdown span.align-right { + clear: both; + display: block; + overflow: hidden; +} +.markdown span.align-right > span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} +.markdown span.align-right span img { + margin: 0; + text-align: right; +} +.markdown span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; +} +.markdown span.float-left span { + margin: 13px 0 0; +} +.markdown span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; +} +.markdown span.float-right > span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} +.markdown code, +.markdown tt { + background-color: #f0f0f0; + border: 1px solid #eaeaea; + border-radius: 3px 3px 3px 3px; + margin: 0 2px; + padding: 0 5px; +} +.markdown pre > code { + background: none repeat scroll 0 0 transparent; + border: medium none; + margin: 0; + padding: 0; + white-space: pre; +} +.markdown .highlight pre, +.markdown pre { + background-color: #f0f0f0; + border: 1px solid #cccccc; + border-radius: 3px 3px 3px 3px; + font-size: 13px; + line-height: 19px; + overflow: auto; + padding: 6px 10px; +} +.markdown pre code, +.markdown pre tt { + background-color: transparent; + border: medium none; +} .markdown { - /* 标题样式 */ - h1 { - font-size: 1.8rem; - } - - h2 { - font-size: 1.6rem; - } - - h3 { - font-size: 1.4rem; - } - - h4 { - font-size: 1.2rem; - } - - h5 { - font-size: 1rem; - } - - h6 { - font-size: 0.83rem; - } - - /* 列表样式 */ - ol, - ul { - padding-left: 1.5rem; - margin-left: 1rem; - } - ul { - list-style: inside; - } - ol { - list-style: decimal; - } - - /* 链接样式 */ - a { - color: #0077cc; - text-decoration: none; - border-bottom: 1px solid #0077cc; - } - - a:hover { - color: #005580; - border-bottom-color: #005580; - } - - /* 图片样式 */ - img { - max-width: 100%; - max-height: 200px; - margin: auto; - } - - /* 强调样式 */ - em, - i { - font-style: italic; - } - - strong, - b { - font-weight: bold; - } - - /* 代码样式 */ - code { - border-radius: 3px; - width: 100%; - } + font-size: 14px; + line-height: 1.6; + letter-spacing: 0.5px; + text-align: justify; pre { - padding: 10px 15px; + display: block; width: 100%; + padding: 15px; + margin: 0; + border: none; + border-radius: 0; background-color: #222 !important; overflow-x: auto; } pre code { - display: block; - border: none; background-color: #222; color: #fff; + width: 100%; + font-family: 'Söhne,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji'; } - p { - line-height: 1.7; + a { + text-decoration: underline; + color: var(--chakra-colors-blue-600); } } diff --git a/src/components/Markdown/index.tsx b/src/components/Markdown/index.tsx index 0fe1f4b80..e6e4f17f2 100644 --- a/src/components/Markdown/index.tsx +++ b/src/components/Markdown/index.tsx @@ -1,33 +1,41 @@ -import React, { useMemo, memo } from 'react'; +import React, { memo, useMemo } from 'react'; import ReactMarkdown from 'react-markdown'; -import remarkGfm from 'remark-gfm'; import styles from './index.module.scss'; import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; import { codeLight } from './codeLight'; import { Box, Flex } from '@chakra-ui/react'; import { useCopyData } from '@/utils/tools'; import Icon from '@/components/Icon'; +import remarkGfm from 'remark-gfm'; +import remarkMath from 'remark-math'; +import rehypeKatex from 'rehype-katex'; const Markdown = ({ source, isChatting }: { source: string; isChatting: boolean }) => { - // const formatSource = useMemo(() => source.replace(/\n/g, '\n'), [source]); + const formatSource = useMemo(() => source.replace(/\n/g, ' \n'), [source]); const { copyData } = useCopyData(); + return ( - + {match?.[1]} copyData(code)} alignItems={'center'}> @@ -36,18 +44,23 @@ const Markdown = ({ source, isChatting }: { source: string; isChatting: boolean {code} + ) : ( + + {children} + ); } }} + linkTarget="_blank" > - {source} + {formatSource} ); }; diff --git a/src/constants/common.ts b/src/constants/common.ts index 4e498190d..9c5d9b3a5 100644 --- a/src/constants/common.ts +++ b/src/constants/common.ts @@ -6,8 +6,7 @@ export enum EmailTypeEnum { export const introPage = ` ## 欢迎使用 Doc GPT -时间比较赶,介绍没来得及完善,先直接上怎么使用: - +时间比较赶,介绍没来得及完善,先直接上怎么使用: 1. 使用邮箱注册账号。 2. 进入账号页面,添加关联账号,目前只有 openai 的账号可以添加,直接去 openai 官网,把 API Key 粘贴过来。 3. 进入模型页,创建一个模型,建议直接用 ChatGPT。 @@ -39,6 +38,5 @@ export const introPage = ` * 分享链接应为:http://docgpt.ahapocket.cn/chat?chatId=6402c9f64cb5d6283f764 ### 其他问题 -还有其他问题,可以加我 wx,拉个交流群大家一起聊聊。 -![](/imgs/erweima.jpg) +还有其他问题,可以加我 wx: YNyiqi,拉个交流群大家一起聊聊。 `; diff --git a/src/constants/theme.ts b/src/constants/theme.ts index 5526b1c63..72661ab04 100644 --- a/src/constants/theme.ts +++ b/src/constants/theme.ts @@ -58,7 +58,11 @@ export const theme = extendTheme({ global: { 'html, body': { color: 'blackAlpha.800', - fontSize: '14px' + fontSize: '14px', + fontFamily: + 'Söhne,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji', + height: '100%', + overflowY: 'auto' } } }, diff --git a/src/hooks/useConfirm.tsx b/src/hooks/useConfirm.tsx index 050dac317..b3365d52a 100644 --- a/src/hooks/useConfirm.tsx +++ b/src/hooks/useConfirm.tsx @@ -1,4 +1,4 @@ -import { useState, useRef } from 'react'; +import { useCallback, useRef } from 'react'; import { AlertDialog, AlertDialogBody, @@ -17,45 +17,51 @@ export const useConfirm = ({ title = '提示', content }: { title?: string; cont const cancelCb = useRef(); return { - openConfirm: (confirm?: any, cancel?: any) => { - onOpen(); - confirmCb.current = confirm; - cancelCb.current = cancel; - }, - ConfirmChild: () => ( - - - - - {title} - + openConfirm: useCallback( + (confirm?: any, cancel?: any) => { + onOpen(); + confirmCb.current = confirm; + cancelCb.current = cancel; + }, + [onOpen] + ), + ConfirmChild: useCallback( + () => ( + + + + + {title} + - {content} + {content} - - - - - - - + + + + + + + + ), + [content, isOpen, onClose, title] ) }; }; diff --git a/src/hooks/useLoading.tsx b/src/hooks/useLoading.tsx index 68c4d3808..7083fe8ae 100644 --- a/src/hooks/useLoading.tsx +++ b/src/hooks/useLoading.tsx @@ -1,32 +1,29 @@ -import { useState } from 'react'; +import { useState, useCallback } from 'react'; import { Spinner, Flex } from '@chakra-ui/react'; export const useLoading = (props?: { defaultLoading: boolean }) => { const [isLoading, setIsLoading] = useState(props?.defaultLoading || false); - const Loading = ({ - loading, - fixed = true - }: { - loading?: boolean; - fixed?: boolean; - }): JSX.Element | null => { - return isLoading || loading ? ( - - - - ) : null; - }; + const Loading = useCallback( + ({ loading, fixed = true }: { loading?: boolean; fixed?: boolean }): JSX.Element | null => { + return isLoading || loading ? ( + + + + ) : null; + }, + [isLoading] + ); return { isLoading, diff --git a/src/hooks/useScreen.ts b/src/hooks/useScreen.ts index 4f96861d0..c392aff3c 100644 --- a/src/hooks/useScreen.ts +++ b/src/hooks/useScreen.ts @@ -11,6 +11,6 @@ export function useScreen() { isPc, mediaLgMd: useMemo(() => (isPc ? 'lg' : 'md'), [isPc]), mediaMdSm: useMemo(() => (isPc ? 'md' : 'sm'), [isPc]), - media: (pc: number | string, phone: number | string) => (isPc ? pc : phone) + media: (pc: any, phone: any) => (isPc ? pc : phone) }; } diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 0a8496d03..f43b83a24 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,23 +1,32 @@ import type { AppProps, NextWebVitalsMetric } from 'next/app'; +import Script from 'next/script'; import Head from 'next/head'; import { ChakraProvider } from '@chakra-ui/react'; import Layout from '@/components/Layout'; import { theme } from '@/constants/theme'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import NProgress from 'nprogress'; //nprogress module +import Router from 'next/router'; +import 'nprogress/nprogress.css'; import '../styles/reset.scss'; -export default function App({ Component, pageProps }: AppProps) { - // Create a client - const queryClient = new QueryClient({ - defaultOptions: { - queries: { - refetchOnWindowFocus: false, - retry: false, - cacheTime: 0 - } - } - }); +//Binding events. +Router.events.on('routeChangeStart', () => NProgress.start()); +Router.events.on('routeChangeComplete', () => NProgress.done()); +Router.events.on('routeChangeError', () => NProgress.done()); +// Create a client +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + retry: false, + cacheTime: 0 + } + } +}); + +export default function App({ Component, pageProps }: AppProps) { return ( <> @@ -28,8 +37,8 @@ export default function App({ Component, pageProps }: AppProps) { content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" /> - + diff --git a/src/pages/api/chat/chatGpt.ts b/src/pages/api/chat/chatGpt.ts index ded6787b4..82fca36e7 100644 --- a/src/pages/api/chat/chatGpt.ts +++ b/src/pages/api/chat/chatGpt.ts @@ -1,6 +1,6 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction import type { NextApiRequest, NextApiResponse } from 'next'; -import { connectToDatabase, Chat, ChatWindow } from '@/service/mongo'; +import { Readable } from 'stream'; +import { connectToDatabase, ChatWindow } from '@/service/mongo'; import type { ModelType } from '@/types/model'; import { getOpenAIApi, authChat } from '@/service/utils/chat'; import { openaiProxy } from '@/service/utils/tools'; @@ -9,12 +9,23 @@ import { ChatItemType } from '@/types/chat'; /* 发送提示词 */ export default async function handler(req: NextApiRequest, res: NextApiResponse) { - res.writeHead(200, { - Connection: 'keep-alive', - 'Content-Encoding': 'none', - 'Cache-Control': 'no-cache', - 'Content-Type': 'text/event-stream' + res.setHeader('Connection', 'keep-alive'); + res.setHeader('Cache-Control', 'no-cache'); + res.setHeader('Content-Type', 'text/event-stream'); + + const responseData: string[] = []; + const stream = new Readable({ + read(size) { + const data = responseData.shift() || null; + this.push(data); + } }); + + res.on('close', () => { + res.end(); + stream.destroy(); + }); + const { chatId, windowId } = req.query as { chatId: string; windowId: string }; try { @@ -47,9 +58,15 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map( (item: ChatItemType) => ({ role: map[item.obj], - content: item.value + content: item.value.replace(/(\n| )/g, '') }) ); + // 第一句话,强调代码类型 + formatPrompts.unshift({ + role: ChatCompletionRequestMessageRoleEnum.System, + content: + 'If the content is code or code blocks, please mark the code type as accurately as possible!' + }); // 获取 chatAPI const chatAPI = getOpenAIApi(userApiKey); @@ -68,43 +85,75 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) const reg = /{"content"(.*)"}/g; // @ts-ignore const match = chatResponse.data.match(reg); + if (!match) return; + let AIResponse = ''; - if (match) { - match.forEach((item: string, i: number) => { - try { - const json = JSON.parse(item); - // 开头的换行忽略 - if (i === 0 && json.content?.startsWith('\n')) return; - AIResponse += json.content; - const content = json.content.replace(/\n/g, '
'); // 无法直接传输\n - content && res.write(`data: ${content}\n\n`); - } catch (err) { - err; - } - }); - } - res.write(`data: [DONE]\n\n`); + // 循环给 stream push 内容 + match.forEach((item: string, i: number) => { + try { + const json = JSON.parse(item); + // 开头的换行忽略 + if (i === 0 && json.content?.startsWith('\n')) return; + AIResponse += json.content; + const content = json.content.replace(/\n/g, '
'); // 无法直接传输\n + if (content) { + responseData.push(`event: responseData\ndata: ${content}\n\n`); + // res.write(`event: responseData\n`) + // res.write(`data: ${content}\n\n`) + } + } catch (err) { + err; + } + }); + + responseData.push(`event: done\ndata: \n\n`); // 存入库 - await ChatWindow.findByIdAndUpdate(windowId, { - $push: { - content: { - obj: 'AI', - value: AIResponse - } - }, - updateTime: Date.now() - }); - - res.end(); + (async () => { + await ChatWindow.findByIdAndUpdate(windowId, { + $push: { + content: { + obj: 'AI', + value: AIResponse + } + }, + updateTime: Date.now() + }); + })(); } catch (err: any) { - console.log(err?.response?.data || err); - // 删除最一条数据库记录, 也就是预发送的那一条 - await ChatWindow.findByIdAndUpdate(windowId, { - $pop: { content: 1 }, - updateTime: Date.now() - }); + let errorText = err; + if (err.code === 'ECONNRESET') { + errorText = '服务器代理出错'; + } else { + switch (err?.response?.data?.error?.code) { + case 'invalid_api_key': + errorText = 'API-KEY不合法'; + break; + case 'context_length_exceeded': + errorText = '内容超长了,请重置对话'; + break; + case 'rate_limit_reached': + errorText = '同时访问用户过多,请稍后再试'; + break; + case null: + errorText = 'OpenAI 服务器访问超时'; + break; + default: + errorText = '服务器异常'; + } + } + console.error(errorText); + responseData.push(`event: serviceError\ndata: ${errorText}\n\n`); - res.end(); + // 删除最一条数据库记录, 也就是预发送的那一条 + (async () => { + await ChatWindow.findByIdAndUpdate(windowId, { + $pop: { content: 1 }, + updateTime: Date.now() + }); + })(); } + + // 开启 stream 传输 + stream.pipe(res); } diff --git a/src/pages/api/chat/init.ts b/src/pages/api/chat/init.ts index 192c9c5ba..c32e57fd8 100644 --- a/src/pages/api/chat/init.ts +++ b/src/pages/api/chat/init.ts @@ -23,7 +23,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) }); // 安全校验 - if (chat.loadAmount === 0 || chat.expiredTime < Date.now()) { + if (!chat || chat.loadAmount === 0 || chat.expiredTime < Date.now()) { throw new Error('聊天框已过期'); } @@ -82,7 +82,6 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) } }); } catch (err) { - console.log(err); jsonRes(res, { code: 500, error: err diff --git a/src/pages/api/test.ts b/src/pages/api/test.ts deleted file mode 100644 index 04326b0ff..000000000 --- a/src/pages/api/test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; - -export default async function handler(req: NextApiRequest, res: NextApiResponse) { - if (req.method !== 'GET') return; - - res.writeHead(200, { - Connection: 'keep-alive', - 'Content-Encoding': 'none', - 'Cache-Control': 'no-cache', - 'Content-Type': 'text/event-stream' - }); - - let val = 0; - - const timer = setInterval(() => { - console.log('发送消息', val); - res.write(`data: ${val++}\n\n`); - if (val > 30) { - clearInterval(timer); - res.write(`data: [DONE]\n\n`); - res.end(); - } - }, 500); -} diff --git a/src/pages/chat/index.tsx b/src/pages/chat/index.tsx index 45b3e9f98..00a7b8cb1 100644 --- a/src/pages/chat/index.tsx +++ b/src/pages/chat/index.tsx @@ -13,15 +13,19 @@ import { Textarea, Box, Flex, Button } from '@chakra-ui/react'; import { useToast } from '@/hooks/useToast'; import Icon from '@/components/Icon'; import { useScreen } from '@/hooks/useScreen'; -import Markdown from '@/components/Markdown'; import { useQuery } from '@tanstack/react-query'; -import { useLoading } from '@/hooks/useLoading'; import { OpenAiModelEnum } from '@/constants/model'; +import dynamic from 'next/dynamic'; +import { useGlobalStore } from '@/store/global'; + +const Markdown = dynamic(() => import('@/components/Markdown')); + +const textareaMinH = '22px'; const Chat = () => { const { toast } = useToast(); const router = useRouter(); - const { media } = useScreen(); + const { isPc, media } = useScreen(); const { chatId, windowId } = router.query as { chatId: string; windowId?: string }; const ChatBox = useRef(null); const TextareaDom = useRef(null); @@ -32,7 +36,7 @@ const Chat = () => { const isChatting = useMemo(() => chatList[chatList.length - 1]?.status === 'loading', [chatList]); const lastWordHuman = useMemo(() => chatList[chatList.length - 1]?.obj === 'Human', [chatList]); - const { Loading } = useLoading(); + const { setLoading } = useGlobalStore(); // 滚动到底部 const scrollToBottom = useCallback(() => { @@ -47,28 +51,40 @@ const Chat = () => { }, []); // 初始化聊天框 - useQuery([chatId, windowId], () => (chatId ? getInitChatSiteInfo(chatId, windowId) : null), { - cacheTime: 5 * 60 * 1000, - onSuccess(res) { - if (!res) return; - router.replace(`/chat?chatId=${chatId}&windowId=${res.windowId}`); - - setChatSiteData(res.chatSite); - setChatList( - res.history.map((item) => ({ - ...item, - status: 'finish' - })) - ); - scrollToBottom(); + useQuery( + [chatId, windowId], + () => { + if (!chatId) return null; + setLoading(true); + return getInitChatSiteInfo(chatId, windowId); }, - onError() { - toast({ - title: '初始化异常', - status: 'error' - }); + { + cacheTime: 5 * 60 * 1000, + onSuccess(res) { + if (!res) return; + router.replace(`/chat?chatId=${chatId}&windowId=${res.windowId}`); + + setChatSiteData(res.chatSite); + setChatList( + res.history.map((item) => ({ + ...item, + status: 'finish' + })) + ); + scrollToBottom(); + setLoading(false); + }, + onError(e: any) { + toast({ + title: e?.message || '初始化异常,请检查地址', + status: 'error', + isClosable: true, + duration: 5000 + }); + setLoading(false); + } } - }); + ); // gpt3 方法 const gpt3ChatPrompt = useCallback( @@ -107,36 +123,55 @@ const Chat = () => { return new Promise((resolve, reject) => { const event = getChatGPTSendEvent(chatId, windowId); - event.onmessage = ({ data }) => { - if (data === '[DONE]') { - event.close(); - setChatList((state) => - state.map((item, index) => { - if (index !== state.length - 1) return item; - return { - ...item, - status: 'finish' - }; - }) - ); - resolve(''); - } else if (data) { - const msg = data.replace(//g, '\n'); - setChatList((state) => - state.map((item, index) => { - if (index !== state.length - 1) return item; - return { - ...item, - value: item.value + msg - }; - }) - ); - } - }; - event.onerror = (err) => { - console.error(err, '==='); + // 30s 收不到消息就报错 + let timer = setTimeout(() => { event.close(); - reject('对话出现错误'); + reject('服务器超时'); + }, 300000); + event.addEventListener('responseData', ({ data }) => { + /* 重置定时器 */ + clearTimeout(timer); + timer = setTimeout(() => { + event.close(); + reject('服务器超时'); + }, 300000); + + const msg = data.replace(//g, '\n'); + setChatList((state) => + state.map((item, index) => { + if (index !== state.length - 1) return item; + return { + ...item, + value: item.value + msg + }; + }) + ); + }); + event.addEventListener('done', () => { + clearTimeout(timer); + event.close(); + setChatList((state) => + state.map((item, index) => { + if (index !== state.length - 1) return item; + return { + ...item, + status: 'finish' + }; + }) + ); + resolve(''); + }); + event.addEventListener('serviceError', ({ data: err }) => { + clearTimeout(timer); + event.close(); + console.error(err, '==='); + reject(typeof err === 'string' ? err : '对话出现不知名错误~'); + }); + event.onerror = (err) => { + clearTimeout(timer); + event.close(); + console.error(err); + reject(typeof err === 'string' ? err : '对话出现不知名错误~'); }; }); }, @@ -179,8 +214,9 @@ const Chat = () => { setTimeout(() => { scrollToBottom(); + /* 回到最小高度 */ if (TextareaDom.current) { - TextareaDom.current.style.height = 22 + 'px'; + TextareaDom.current.style.height = textareaMinH; } }, 100); @@ -242,7 +278,7 @@ const Chat = () => { }, [chatList, windowId]); return ( - + {/* 头部 */} {
{/* 滚动到底部按键 */} - {/* 滚动到底部 */} {ChatBox.current && ChatBox.current.scrollHeight > 2 * ChatBox.current.clientHeight && ( { borderBottom={'1px solid rgba(0,0,0,0.1)'} > - + /imgs/modelAvatar.png + /> - + {item.obj === 'AI' ? ( + + ) : ( + {item.value} + )} ))}
+ {/* 空内容提示 */} + {/* { + chatList.length === 0 && ( + <> + +内容太长 + + + ) + } */} {lastWordHuman ? ( @@ -349,12 +399,12 @@ const Chat = () => { onChange={(e) => { const textarea = e.target; setInputVal(textarea.value); - - textarea.style.height = textarea.value.split('\n').length * 22 + 'px'; + textarea.style.height = textareaMinH; + textarea.style.height = `${textarea.scrollHeight}px`; }} onKeyDown={(e) => { // 触发快捷发送 - if (e.keyCode === 13 && !e.shiftKey) { + if (isPc && e.keyCode === 13 && !e.shiftKey) { sendPrompt(); e.preventDefault(); } @@ -382,7 +432,6 @@ const Chat = () => { )} - ); }; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 5bfc70f2e..75046b298 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,12 +1,9 @@ -import React, { useEffect } from 'react'; -import { useRouter } from 'next/router'; -import { Card, Text, Box, Heading, Flex } from '@chakra-ui/react'; +import React from 'react'; +import { Card } from '@chakra-ui/react'; import Markdown from '@/components/Markdown'; import { introPage } from '@/constants/common'; const Home = () => { - const router = useRouter(); - return ( diff --git a/src/pages/login/components/ForgetPasswordForm.tsx b/src/pages/login/components/ForgetPasswordForm.tsx index 8a4283baa..b6ab6df1d 100644 --- a/src/pages/login/components/ForgetPasswordForm.tsx +++ b/src/pages/login/components/ForgetPasswordForm.tsx @@ -1,19 +1,12 @@ import React, { useState, Dispatch, useCallback } from 'react'; -import { - FormControl, - Box, - Input, - Button, - FormErrorMessage, - useToast, - Flex -} from '@chakra-ui/react'; +import { FormControl, Box, Input, Button, FormErrorMessage, Flex } from '@chakra-ui/react'; import { useForm } from 'react-hook-form'; import { PageTypeEnum } from '../../../constants/user'; import { postFindPassword } from '@/api/user'; import { useSendCode } from '@/hooks/useSendCode'; import type { ResLogin } from '@/api/response/user'; import { useScreen } from '@/hooks/useScreen'; +import { useToast } from '@/hooks/useToast'; interface Props { setPageType: Dispatch<`${PageTypeEnum}`>; @@ -28,7 +21,7 @@ interface RegisterType { } const RegisterForm = ({ setPageType, loginSuccess }: Props) => { - const toast = useToast(); + const { toast } = useToast(); const { mediaLgMd } = useScreen(); const { register, @@ -66,8 +59,7 @@ const RegisterForm = ({ setPageType, loginSuccess }: Props) => { ); toast({ title: `密码已找回`, - status: 'success', - position: 'top' + status: 'success' }); } catch (error) { typeof error === 'string' && diff --git a/src/pages/login/index.module.scss b/src/pages/login/index.module.scss index c4ae441b4..fe5c78ced 100644 --- a/src/pages/login/index.module.scss +++ b/src/pages/login/index.module.scss @@ -1,7 +1,5 @@ .loginPage { background: url('/icon/login-bg.svg') no-repeat; background-size: cover; - height: 100vh; - width: 100vw; user-select: none; } diff --git a/src/pages/login/index.tsx b/src/pages/login/index.tsx index e61f267d7..39ae9c5e3 100644 --- a/src/pages/login/index.tsx +++ b/src/pages/login/index.tsx @@ -1,15 +1,17 @@ -import React, { useState, useCallback } from 'react'; +import React, { useState, useCallback, useMemo } from 'react'; import styles from './index.module.scss'; import { Box, Flex, Image } from '@chakra-ui/react'; import { PageTypeEnum } from '@/constants/user'; -import LoginForm from './components/LoginForm'; -import RegisterForm from './components/RegisterForm'; -import ForgetPasswordForm from './components/ForgetPasswordForm'; import { useScreen } from '@/hooks/useScreen'; import type { ResLogin } from '@/api/response/user'; import { useRouter } from 'next/router'; import { useUserStore } from '@/store/user'; +import dynamic from 'next/dynamic'; +const LoginForm = dynamic(() => import('./components/LoginForm')); +const RegisterForm = dynamic(() => import('./components/RegisterForm')); +const ForgetPasswordForm = dynamic(() => import('./components/ForgetPasswordForm')); + const Login = () => { const router = useRouter(); const { isPc } = useScreen(); @@ -24,23 +26,20 @@ const Login = () => { [router, setUserInfo] ); - const map = { - [PageTypeEnum.login]: { - Component: , - img: '/icon/loginLeft.svg' - }, - [PageTypeEnum.register]: { - Component: , - img: '/icon/loginLeft.svg' - }, - [PageTypeEnum.forgetPassword]: { - Component: , - img: '/icon/loginLeft.svg' - } - }; + function DynamicComponent({ type }: { type: `${PageTypeEnum}` }) { + const TypeMap = { + [PageTypeEnum.login]: LoginForm, + [PageTypeEnum.register]: RegisterForm, + [PageTypeEnum.forgetPassword]: ForgetPasswordForm + }; + + const Component = TypeMap[type]; + + return ; + } return ( - + { > {isPc && ( { px={10} borderRadius={isPc ? 'md' : 'none'} > - {map[pageType].Component} + diff --git a/src/pages/model/components/CreateModel.tsx b/src/pages/model/components/CreateModel.tsx index 5dc75dd78..4bcb27d07 100644 --- a/src/pages/model/components/CreateModel.tsx +++ b/src/pages/model/components/CreateModel.tsx @@ -25,11 +25,9 @@ interface CreateFormType { } const CreateModel = ({ - isOpen, setCreateModelOpen, onSuccess }: { - isOpen: boolean; setCreateModelOpen: Dispatch; onSuccess: Dispatch; }) => { @@ -72,7 +70,7 @@ const CreateModel = ({ return ( <> - setCreateModelOpen(false)}> + setCreateModelOpen(false)}> 创建模型 diff --git a/src/pages/model/components/ModelEditForm.tsx b/src/pages/model/components/ModelEditForm.tsx index 4cb6d7ff1..5c432f75e 100644 --- a/src/pages/model/components/ModelEditForm.tsx +++ b/src/pages/model/components/ModelEditForm.tsx @@ -1,4 +1,4 @@ -import React, { useCallback } from 'react'; +import React, { useCallback, useEffect, useRef } from 'react'; import { Grid, Box, Card, Flex, Button, FormControl, Input, Textarea } from '@chakra-ui/react'; import type { ModelType } from '@/types/model'; import { useForm } from 'react-hook-form'; @@ -7,17 +7,17 @@ import { putModelById } from '@/api/model'; import { useScreen } from '@/hooks/useScreen'; import { useGlobalStore } from '@/store/global'; -const ModelEditForm = ({ model }: { model: ModelType }) => { +const ModelEditForm = ({ model }: { model?: ModelType }) => { + const isInit = useRef(false); const { register, handleSubmit, + reset, formState: { errors } - } = useForm({ - defaultValues: model - }); + } = useForm(); const { setLoading } = useGlobalStore(); const { toast } = useToast(); - const { isPc } = useScreen(); + const { media } = useScreen(); const onclickSave = useCallback( async (data: ModelType) => { @@ -34,7 +34,7 @@ const ModelEditForm = ({ model }: { model: ModelType }) => { status: 'success' }); } catch (err) { - console.log(err); + console.error(err); toast({ title: err as string, status: 'success' @@ -61,8 +61,16 @@ const ModelEditForm = ({ model }: { model: ModelType }) => { }); }, [errors, toast]); + /* model 只会改变一次 */ + useEffect(() => { + if (model && !isInit.current) { + reset(model); + isInit.current = true; + } + }, [model, reset]); + return ( - + @@ -83,7 +91,7 @@ const ModelEditForm = ({ model }: { model: ModelType }) => { 对话模型: - {model.service.modelName} + {model?.service.modelName} diff --git a/src/pages/model/components/Training.tsx b/src/pages/model/components/Training.tsx index f60879d74..4a4bb1d18 100644 --- a/src/pages/model/components/Training.tsx +++ b/src/pages/model/components/Training.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useCallback, useState } from 'react'; -import { Box, Card, TableContainer, Table, Thead, Tbody, Tr, Th, Td } from '@chakra-ui/react'; +import { Box, TableContainer, Table, Thead, Tbody, Tr, Th, Td } from '@chakra-ui/react'; import { ModelType } from '@/types/model'; import { getModelTrainings } from '@/api/model'; import type { TrainingItemType } from '@/types/training'; @@ -29,7 +29,7 @@ const Training = ({ model }: { model: ModelType }) => { const res = await getModelTrainings(id); setRecords(res); } catch (error) { - console.log(error); + console.error(error); } }, []); @@ -38,7 +38,7 @@ const Training = ({ model }: { model: ModelType }) => { }, [loadTrainingRecords, model]); return ( - + <> 训练记录: {model.trainingTimes}次 @@ -63,7 +63,7 @@ const Training = ({ model }: { model: ModelType }) => { - + ); }; diff --git a/src/pages/model/detail.tsx b/src/pages/model/detail.tsx index a23c7848a..2b4ed366c 100644 --- a/src/pages/model/detail.tsx +++ b/src/pages/model/detail.tsx @@ -11,12 +11,14 @@ import { useGlobalStore } from '@/store/global'; import { useScreen } from '@/hooks/useScreen'; import ModelEditForm from './components/ModelEditForm'; import Icon from '@/components/Icon'; -import Training from './components/Training'; +import dynamic from 'next/dynamic'; + +const Training = dynamic(() => import('./components/Training')); const ModelDetail = () => { const { toast } = useToast(); const router = useRouter(); - const { isPc } = useScreen(); + const { isPc, media } = useScreen(); const { setLoading } = useGlobalStore(); const { openConfirm, ConfirmChild } = useConfirm({ content: '确认删除该模型?' @@ -39,10 +41,8 @@ const ModelDetail = () => { const res = await getModelById(modelId as string); res.security.expiredTime /= 60 * 60 * 1000; setModel(res); - - console.log(res); } catch (err) { - console.log(err); + console.error(err); } setLoading(false); }, [modelId, setLoading]); @@ -63,7 +63,7 @@ const ModelDetail = () => { }); router.replace('/model/list'); } catch (err) { - console.log(err); + console.error(err); } setLoading(false); }, [setLoading, model, router, toast]); @@ -77,7 +77,7 @@ const ModelDetail = () => { router.push(`/chat?chatId=${chatId}`); } catch (err) { - console.log(err); + console.error(err); } setLoading(false); }, [setLoading, model, router]); @@ -105,7 +105,7 @@ const ModelDetail = () => { title: typeof err === 'string' ? err : '文件格式错误', status: 'error' }); - console.log(err); + console.error(err); } setLoading(false); }, @@ -121,121 +121,121 @@ const ModelDetail = () => { await putModelTrainingStatus(model._id); loadModel(); } catch (error) { - console.log(error); + console.error(error); } setLoading(false); }, [setLoading, loadModel, model]); return ( <> - {!!model && ( - <> - {/* 头部 */} - - {isPc ? ( - - - {model.name} 配置 - - + {/* 头部 */} + + {isPc ? ( + + + {model?.name || '模型'} 配置 + + {!!model && ( + + {formatModelStatus[model.status].text} + + )} + + + + ) : ( + <> + + + {model?.name || '模型'} 配置 + + {!!model && ( + {formatModelStatus[model.status].text} - - - - ) : ( - <> - - - {model.name} 配置 - - - {formatModelStatus[model.status].text} - - - - - - - )} - - {/* 基本信息编辑 */} - - + )} + + + + + + )} + + {/* 基本信息编辑 */} + + + + {/* 其他配置 */} + + {!!model && } + + + 神奇操作 - {/* 其他配置 */} - - - - - 神奇操作 - - - 模型微调: - - - - 下载模板 - - - {/* 提示 */} - - - 每行包括一个 prompt 和一个 completion - - - prompt 必须以 \n\n###\n\n 结尾,且尽量保障每个 prompt - 内容不都是同一个标点结尾,可以加一个空格打断相同性, - - - completion 开头必须有一个空格,末尾必须以 ### 结尾,同样的不要都是同一个标点结尾。 - - - - 删除模型: - - - - - - )} + + 模型微调: + + + + 下载模板 + + + {/* 提示 */} + + + 每行包括一个 prompt 和一个 completion + + + prompt 必须以 \n\n###\n\n 结尾,且尽量保障每个 prompt + 内容不都是同一个标点结尾,可以加一个空格打断相同性, + + + completion 开头必须有一个空格,末尾必须以 ### 结尾,同样的不要都是同一个标点结尾。 + + + + 删除模型: + + + + diff --git a/src/pages/model/list.tsx b/src/pages/model/list.tsx index b6d1d0f1e..c6057b81a 100644 --- a/src/pages/model/list.tsx +++ b/src/pages/model/list.tsx @@ -1,36 +1,32 @@ -import React, { useState, useEffect, useCallback } from 'react'; +import React, { useState, useCallback } from 'react'; import { Box, Button, Flex, Card } from '@chakra-ui/react'; import { getMyModels } from '@/api/model'; import { getChatSiteId } from '@/api/chat'; import { ModelType } from '@/types/model'; -import CreateModel from './components/CreateModel'; import { useRouter } from 'next/router'; import ModelTable from './components/ModelTable'; import ModelPhoneList from './components/ModelPhoneList'; import { useScreen } from '@/hooks/useScreen'; -import { useGlobalStore } from '@/store/global'; +import { useQuery } from '@tanstack/react-query'; +import { useLoading } from '@/hooks/useLoading'; +import dynamic from 'next/dynamic'; + +const CreateModel = dynamic(() => import('./components/CreateModel')); const ModelList = () => { const { isPc } = useScreen(); const router = useRouter(); const [models, setModels] = useState([]); const [openCreateModel, setOpenCreateModel] = useState(false); - const { setLoading } = useGlobalStore(); + const { Loading, setIsLoading } = useLoading(); /* 加载模型 */ - const loadModels = useCallback(async () => { - setLoading(true); - try { - const res = await getMyModels(); + const { isLoading } = useQuery(['loadModels'], () => getMyModels(), { + onSuccess(res) { + if (!res) return; setModels(res); - } catch (err) { - console.log(err); } - setLoading(false); - }, [setLoading]); - useEffect(() => { - loadModels(); - }, [loadModels]); + }); /* 创建成功回调 */ const createModelSuccess = useCallback((data: ModelType) => { @@ -40,7 +36,7 @@ const ModelList = () => { /* 点前往聊天预览页 */ const handlePreviewChat = useCallback( async (modelId: string) => { - setLoading(true); + setIsLoading(true); try { const chatId = await getChatSiteId(modelId); @@ -48,11 +44,11 @@ const ModelList = () => { shallow: true }); } catch (err) { - console.log(err); + console.error(err); } - setLoading(false); + setIsLoading(false); }, - [router, setLoading] + [router, setIsLoading] ); return ( @@ -78,11 +74,11 @@ const ModelList = () => { )} {/* 创建弹窗 */} - + {openCreateModel && ( + + )} + +
); }; diff --git a/src/service/mongo.ts b/src/service/mongo.ts index 33322e26c..e68deb885 100644 --- a/src/service/mongo.ts +++ b/src/service/mongo.ts @@ -8,7 +8,7 @@ export async function connectToDatabase() { return cachedClient; } - cachedClient = await mongoose.connect(process.env.MONGODB_UR as string, { + cachedClient = await mongoose.connect(process.env.MONGODB_URI as string, { dbName: 'doc_gpt' }); diff --git a/src/service/response.ts b/src/service/response.ts index fe312a490..ea2cb1318 100644 --- a/src/service/response.ts +++ b/src/service/response.ts @@ -24,8 +24,8 @@ export const jsonRes = ( typeof error === 'string' ? error : openaiError[error?.response?.data?.message] || error?.message || '请求错误'; - - console.log(msg); + console.error(error); + console.error(msg); } res.json({ diff --git a/src/service/utils/sendEmail.ts b/src/service/utils/sendEmail.ts index 0fcea75da..2923ec029 100644 --- a/src/service/utils/sendEmail.ts +++ b/src/service/utils/sendEmail.ts @@ -34,7 +34,7 @@ export const sendCode = (email: string, code: string, type: `${EmailTypeEnum}`) }; mailTransport.sendMail(options, function (err, msg) { if (err) { - console.log(err); + console.error(err); reject('邮箱异常'); } else { resolve(''); @@ -53,7 +53,7 @@ export const sendTrainSucceed = (email: string, modelName: string) => { }; mailTransport.sendMail(options, function (err, msg) { if (err) { - console.log(err); + console.error(err); reject('邮箱异常'); } else { resolve(''); diff --git a/src/styles/reset.scss b/src/styles/reset.scss index bc7531aeb..c6b60dc7e 100644 --- a/src/styles/reset.scss +++ b/src/styles/reset.scss @@ -24,63 +24,9 @@ td, svg { margin: 0; } -body, -button, -input, -select, -textarea { - font: 12px/1.5tahoma, arial, \5b8b\4f53; -} -// h1, h2, h3, h4, h5, h6{ font-size:100%; } -address, -cite, -dfn, -em, -var { - font-style: normal; -} -code, -kbd, -pre, -samp { - font-family: couriernew, courier, monospace; -} -small { - font-size: 12px; -} -ul, -ol { - list-style: none; - padding: 0; -} -a { - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -sup { - vertical-align: text-top; -} -sub { - vertical-align: text-bottom; -} -legend { - color: #000; -} -fieldset, -img { - border: 0; -} -button, -input, -select, -textarea { - font-size: 100%; -} -table { - border-collapse: collapse; - border-spacing: 0; + +#__next { + height: 100%; } ::-webkit-scrollbar, diff --git a/src/styles/scrollbar.module.scss b/src/styles/scrollbar.module.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/utils/tools.ts b/src/utils/tools.ts index bc8315dad..787651bb7 100644 --- a/src/utils/tools.ts +++ b/src/utils/tools.ts @@ -8,19 +8,25 @@ export const useCopyData = () => { const { toast } = useToast(); return { copyData: (data: string, title: string = '复制成功') => { - const clipboardObj = navigator.clipboard; - clipboardObj - .writeText(data) - .then(() => { - toast({ - title, - status: 'success', - duration: 1000 - }); - }) - .catch((err) => { - console.log(err); + try { + const textarea = document.createElement('textarea'); + textarea.value = data; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand('copy'); + document.body.removeChild(textarea); + toast({ + title, + status: 'success', + duration: 1000 }); + } catch (error) { + console.error(error); + toast({ + title: '复制失败', + status: 'error' + }); + } } }; };