@@ -23,7 +23,8 @@
>
> 😜 给项目点点 Star 吧,这对我们真的很重要!
-* 前端采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) ,正在支持 Vue 3 + ElementUI Plus 最新方案。
+* 前端 vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
+* 前端 vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin)
* 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统。
@@ -176,13 +177,29 @@ ps:核心功能已经实现,正在对接微信小程序中...
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.0.0 | - |
-### 前端
+### vue2 前端
| 框架 | 说明 | 版本 |
|------------------------------------------------------------------------------|---------------|--------|
| [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.6.12 |
| [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - |
+### vue3 前端
+
+| 框架 | 说明 | 版本 |
+|------------------------------------------------------------------------------|---------------|--------|
+| [Vue](https://staging-cn.vuejs.org/) | vue 框架 | 3.2.37 |
+| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 3.0.1 |
+| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.9 |
+| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.7.4 |
+| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.16 |
+| [vueuse](https://vueuse.org//) | 常用工具集 | 8.9.4 |
+| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.1.10 |
+| [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.2 |
+| [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 |
+| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 2.2.1 |
+| [wangeditor](https://www.wangeditor.com/) | 富文本编辑器 | 5.1.11 |
## 🐷 演示图
### 系统功能
@@ -418,7 +418,7 @@
</dependency>
<dependency>
<groupId>org.flowable</groupId>
- <artifactId>flowable-spring-boot-starter-basic</artifactId>
+ <artifactId>flowable-spring-boot-starter-process</artifactId>
<version>${flowable.version}</version>
@@ -26,7 +26,7 @@
<!-- flowable 工作流相关 -->
@@ -4,5 +4,5 @@ dist
dist-ssr
*.local
/dist*
+*-lock.*
pnpm-debug
-/frank*
@@ -1,16 +0,0 @@
-{
- "types": [
- {"type": "chore", "section":"Others", "hidden": false},
- {"type": "revert", "section":"Reverts", "hidden": false},
- {"type": "feat", "section": "Features", "hidden": false},
- {"type": "fix", "section": "Bug Fixes", "hidden": false},
- {"type": "improvement", "section": "Feature Improvements", "hidden": false},
- {"type": "docs", "section":"Docs", "hidden": false},
- {"type": "style", "section":"Styling", "hidden": false},
- {"type": "refactor", "section":"Code Refactoring", "hidden": false},
- {"type": "perf", "section":"Performance Improvements", "hidden": false},
- {"type": "test", "section":"Tests", "hidden": false},
- {"type": "build", "section":"Build System", "hidden": false},
- {"type": "ci", "section":"CI", "hidden":false}
- ]
-}
@@ -0,0 +1,21 @@
+MIT License
+Copyright (c) 2021-present Archer
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
@@ -7,7 +7,7 @@
## 注意事项
- 项目路径请不要使用中文命名!!!会造成解析乱码!!!请使用全英文路径!!!
-- node >=14.18.0 ,pnpm >=7
+- node >=14.18.0(建议使用16版本) ,pnpm >=7
- 开发建议使用 [谷歌浏览器-开发者版](https://www.google.cn/intl/zh-CN/chrome/dev/) 不支持 IE\QQ 等浏览器
### 前端依赖
@@ -65,6 +65,10 @@ pnpm install
pnpm run dev
+# 打包
+pnpm run build:pro
# 安装一个包
pnpm add 包名
@@ -72,6 +76,8 @@ pnpm add 包名
# 卸载一个包
pnpm remove 包名
+# 其他命令请看package.json
```
## 浏览器支持
@@ -1,7 +1,7 @@
{
"name": "ruoyi-vue-pro-vue3",
- "version": "0.0.154",
- "description": "基于vue3、element-plus、typesScript、vite3。",
+ "version": "1.0.160",
+ "description": "基于vue3、element-plus、typesScript、vite3",
"author": "xingyu",
"private": false,
"scripts": {
@@ -10,7 +10,7 @@
"ts:check": "vue-tsc --noEmit",
"build:pro": "vite build --mode pro",
"build:dev": "vite build --mode dev",
- "build:test": "npm run ts:check && vite build --mode test",
+ "build:test": "pnpm run ts:check && vite build --mode test",
"serve:pro": "vite preview --mode pro",
"serve:dev": "vite preview --mode dev",
"serve:test": "vite preview --mode test",
@@ -27,7 +27,7 @@
"dependencies": {
"@iconify/iconify": "^2.2.1",
"@vueuse/core": "^8.9.4",
- "@wangeditor/editor": "^5.1.11",
+ "@wangeditor/editor": "^5.1.10",
"@wangeditor/editor-for-vue": "^5.1.10",
"@zxcvbn-ts/core": "^2.0.3",
"animate.css": "^4.1.1",
@@ -37,6 +37,7 @@
"echarts-wordcloud": "^2.0.0",
"element-plus": "2.2.9",
"intro.js": "^6.0.0",
+ "jsencrypt": "^3.2.1",
"lodash-es": "^4.17.21",
"mitt": "^3.0.0",
"nprogress": "^0.2.0",
@@ -44,6 +45,7 @@
"pinia-plugin-persist": "^1.0.0",
"qrcode": "^1.5.1",
"qs": "^6.11.0",
+ "url": "^0.11.0",
"vue": "3.2.37",
"vue-cropper": "^1.0.3",
"vue-i18n": "9.1.10",
@@ -63,8 +65,8 @@
"@types/nprogress": "^0.2.0",
"@types/qrcode": "^1.4.2",
"@types/qs": "^6.9.7",
- "@typescript-eslint/eslint-plugin": "^5.30.6",
- "@typescript-eslint/parser": "^5.30.6",
+ "@typescript-eslint/eslint-plugin": "^5.30.7",
+ "@typescript-eslint/parser": "^5.30.7",
"@vitejs/plugin-vue": "^3.0.1",
"@vitejs/plugin-vue-jsx": "^2.0.0",
"autoprefixer": "^10.4.7",
@@ -80,7 +82,6 @@
"postcss-html": "^1.5.0",
"postcss-less": "^6.0.0",
"prettier": "^2.7.1",
- "pretty-quick": "^3.1.3",
"rimraf": "^3.0.2",
"rollup": "^2.77.0",
"stylelint": "^14.9.1",
@@ -91,8 +92,8 @@
"stylelint-order": "^5.0.0",
"typescript": "4.7.4",
"unplugin-vue-define-options": "^0.6.2",
- "vite": "3.0.1",
- "vite-plugin-eslint": "^1.6.1",
+ "vite": "3.0.2",
+ "vite-plugin-eslint": "^1.7.0",
"vite-plugin-html": "^3.2.0",
"vite-plugin-purge-icons": "^0.8.1",
"vite-plugin-style-import": "^1.4.1",
@@ -1,7452 +0,0 @@
-lockfileVersion: 5.4
-
-specifiers:
- '@commitlint/cli': ^17.0.3
- '@commitlint/config-conventional': ^17.0.3
- '@iconify/iconify': ^2.2.1
- '@iconify/json': ^2.1.79
- '@intlify/vite-plugin-vue-i18n': ^5.0.0
- '@purge-icons/generated': ^0.8.1
- '@types/intro.js': ^5.1.0
- '@types/lodash-es': ^4.17.6
- '@types/node': ^18.0.6
- '@types/nprogress': ^0.2.0
- '@types/qrcode': ^1.4.2
- '@types/qs': ^6.9.7
- '@typescript-eslint/eslint-plugin': ^5.30.6
- '@typescript-eslint/parser': ^5.30.6
- '@vitejs/plugin-vue': ^3.0.1
- '@vitejs/plugin-vue-jsx': ^2.0.0
- '@vueuse/core': ^8.9.4
- '@wangeditor/editor': ^5.1.11
- '@wangeditor/editor-for-vue': ^5.1.10
- '@zxcvbn-ts/core': ^2.0.3
- animate.css: ^4.1.1
- autoprefixer: ^10.4.7
- axios: ^0.27.2
- dayjs: ^1.11.3
- echarts: ^5.3.3
- echarts-wordcloud: ^2.0.0
- element-plus: 2.2.9
- eslint: ^8.20.0
- eslint-config-prettier: ^8.5.0
- eslint-define-config: ^1.5.1
- eslint-plugin-prettier: ^4.2.1
- eslint-plugin-vue: ^9.2.0
- intro.js: ^6.0.0
- less: ^4.1.3
- lint-staged: ^13.0.3
- lodash-es: ^4.17.21
- mitt: ^3.0.0
- nprogress: ^0.2.0
- pinia: ^2.0.16
- pinia-plugin-persist: ^1.0.0
- plop: ^3.1.1
- postcss: ^8.4.14
- postcss-html: ^1.5.0
- postcss-less: ^6.0.0
- prettier: ^2.7.1
- pretty-quick: ^3.1.3
- qrcode: ^1.5.1
- qs: ^6.11.0
- rimraf: ^3.0.2
- rollup: ^2.77.0
- stylelint: ^14.9.1
- stylelint-config-html: ^1.1.0
- stylelint-config-prettier: ^9.0.3
- stylelint-config-recommended: ^8.0.0
- stylelint-config-standard: ^26.0.0
- stylelint-order: ^5.0.0
- typescript: 4.7.4
- unplugin-vue-define-options: ^0.6.2
- vite: 3.0.1
- vite-plugin-eslint: ^1.6.1
- vite-plugin-html: ^3.2.0
- vite-plugin-purge-icons: ^0.8.1
- vite-plugin-style-import: ^1.4.1
- vite-plugin-svg-icons: ^2.0.1
- vite-plugin-windicss: ^1.8.7
- vue: 3.2.37
- vue-cropper: ^1.0.3
- vue-i18n: 9.1.10
- vue-router: ^4.1.2
- vue-tsc: ^0.38.8
- vue-types: ^4.1.1
- web-storage-cache: ^1.1.1
- windicss: ^3.5.6
- windicss-analysis: ^0.3.5
-dependencies:
- '@iconify/iconify': 2.2.1
- '@vueuse/core': 8.9.4_vue@3.2.37
- '@wangeditor/editor': 5.1.11
- '@wangeditor/editor-for-vue': 5.1.10_wyweaejqxhtklhndhf2ynbwhvm
- '@zxcvbn-ts/core': 2.0.3
- animate.css: 4.1.1
- axios: 0.27.2
- dayjs: 1.11.3
- echarts: 5.3.3
- echarts-wordcloud: 2.0.0_echarts@5.3.3
- element-plus: 2.2.9_vue@3.2.37
- intro.js: 6.0.0
- lodash-es: registry.nlark.com/lodash-es/4.17.21
- mitt: 3.0.0
- nprogress: 0.2.0
- pinia: 2.0.16_j6bzmzd4ujpabbp5objtwxyjp4
- pinia-plugin-persist: 1.0.0_pinia@2.0.16+vue@3.2.37
- qrcode: 1.5.1
- qs: 6.11.0
- vue-cropper: 1.0.3
- vue-i18n: 9.1.10_vue@3.2.37
- vue-router: 4.1.2_vue@3.2.37
- vue-types: 4.1.1_vue@3.2.37
- web-storage-cache: 1.1.1
-devDependencies:
- '@commitlint/cli': 17.0.3
- '@commitlint/config-conventional': 17.0.3
- '@iconify/json': 2.1.79
- '@intlify/vite-plugin-vue-i18n': 5.0.0_vite@3.0.1+vue-i18n@9.1.10
- '@purge-icons/generated': 0.8.1
- '@types/intro.js': 5.1.0
- '@types/lodash-es': 4.17.6
- '@types/node': 18.0.6
- '@types/nprogress': 0.2.0
- '@types/qrcode': 1.4.2
- '@types/qs': 6.9.7
- '@typescript-eslint/eslint-plugin': 5.30.6_b7n364ggt6o4xlkgyoaww3ph3q
- '@typescript-eslint/parser': 5.30.6_he2ccbldppg44uulnyq4rwocfa
- '@vitejs/plugin-vue': 3.0.1_vite@3.0.1+vue@3.2.37
- '@vitejs/plugin-vue-jsx': 2.0.0_vite@3.0.1+vue@3.2.37
- autoprefixer: 10.4.7_postcss@8.4.14
- eslint: 8.20.0
- eslint-config-prettier: 8.5.0_eslint@8.20.0
- eslint-define-config: 1.5.1
- eslint-plugin-prettier: 4.2.1_g4fztgbwjyq2fvmcscny2sj6fy
- eslint-plugin-vue: 9.2.0_eslint@8.20.0
- less: 4.1.3
- lint-staged: 13.0.3
- plop: 3.1.1
- postcss: 8.4.14
- postcss-html: 1.5.0
- postcss-less: 6.0.0_postcss@8.4.14
- prettier: 2.7.1
- pretty-quick: 3.1.3_prettier@2.7.1
- rimraf: 3.0.2
- rollup: 2.77.0
- stylelint: 14.9.1
- stylelint-config-html: 1.1.0_5rxrxgs7sjazj2ve56ds3kmipi
- stylelint-config-prettier: 9.0.3_stylelint@14.9.1
- stylelint-config-recommended: 8.0.0_stylelint@14.9.1
- stylelint-config-standard: 26.0.0_stylelint@14.9.1
- stylelint-order: 5.0.0_stylelint@14.9.1
- unplugin-vue-define-options: 0.6.2_r5lvqzud3cqtmwu636rwgh22ui
- vite: 3.0.1_less@4.1.3
- vite-plugin-eslint: 1.6.1_eslint@8.20.0+vite@3.0.1
- vite-plugin-html: 3.2.0_vite@3.0.1
- vite-plugin-purge-icons: 0.8.1_vite@3.0.1
- vite-plugin-style-import: 1.4.1_vite@3.0.1
- vite-plugin-svg-icons: 2.0.1_vite@3.0.1
- vite-plugin-windicss: 1.8.7_vite@3.0.1
- vue-tsc: 0.38.8_typescript@4.7.4
- windicss: 3.5.6
- windicss-analysis: 0.3.5
-packages:
- /@ampproject/remapping/2.1.1:
- resolution: {integrity: sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==}
- engines: {node: '>=6.0.0'}
- dependencies:
- '@jridgewell/trace-mapping': 0.3.4
- dev: true
- /@antfu/utils/0.5.2:
- resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==}
- /@babel/code-frame/7.16.7:
- resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
- engines: {node: '>=6.9.0'}
- '@babel/highlight': 7.16.10
- /@babel/code-frame/7.18.6:
- resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
- '@babel/highlight': 7.18.6
- /@babel/compat-data/7.18.8:
- resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==}
- /@babel/core/7.18.9:
- resolution: {integrity: sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==}
- '@ampproject/remapping': 2.1.1
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.18.9
- '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.9
- '@babel/helper-module-transforms': 7.18.9
- '@babel/helpers': 7.18.9
- '@babel/parser': 7.18.9
- '@babel/template': 7.18.6
- '@babel/traverse': 7.18.9
- '@babel/types': 7.18.9
- convert-source-map: 1.8.0
- debug: 4.3.4
- gensync: 1.0.0-beta.2
- json5: 2.2.1
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- /@babel/generator/7.18.9:
- resolution: {integrity: sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==}
- '@jridgewell/gen-mapping': 0.3.2
- jsesc: 2.5.2
- /@babel/helper-annotate-as-pure/7.18.6:
- resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
- /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.9:
- resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==}
- peerDependencies:
- '@babel/core': ^7.0.0
- '@babel/compat-data': 7.18.8
- '@babel/core': 7.18.9
- '@babel/helper-validator-option': 7.18.6
- browserslist: 4.20.3
- /@babel/helper-create-class-features-plugin/7.18.9_@babel+core@7.18.9:
- resolution: {integrity: sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==}
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.18.9
- '@babel/helper-member-expression-to-functions': 7.18.9
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/helper-replace-supers': 7.18.9
- '@babel/helper-split-export-declaration': 7.18.6
- /@babel/helper-environment-visitor/7.16.7:
- resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}
- /@babel/helper-environment-visitor/7.18.9:
- resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
- /@babel/helper-function-name/7.17.9:
- resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==}
- /@babel/helper-function-name/7.18.9:
- resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==}
- /@babel/helper-hoist-variables/7.16.7:
- resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
- /@babel/helper-hoist-variables/7.18.6:
- resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
- /@babel/helper-member-expression-to-functions/7.18.9:
- resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}
- /@babel/helper-module-imports/7.16.7:
- resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
- /@babel/helper-module-imports/7.18.6:
- resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
- /@babel/helper-module-transforms/7.18.9:
- resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==}
- '@babel/helper-module-imports': 7.18.6
- '@babel/helper-simple-access': 7.18.6
- '@babel/helper-validator-identifier': 7.18.6
- /@babel/helper-optimise-call-expression/7.18.6:
- resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
- /@babel/helper-plugin-utils/7.16.7:
- resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==}
- /@babel/helper-plugin-utils/7.18.9:
- resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==}
- /@babel/helper-replace-supers/7.18.9:
- resolution: {integrity: sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==}
- /@babel/helper-simple-access/7.18.6:
- resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
- /@babel/helper-split-export-declaration/7.16.7:
- resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
- /@babel/helper-split-export-declaration/7.18.6:
- resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
- /@babel/helper-validator-identifier/7.16.7:
- resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
- /@babel/helper-validator-identifier/7.18.6:
- resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
- /@babel/helper-validator-option/7.18.6:
- resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
- /@babel/helpers/7.18.9:
- resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==}
- /@babel/highlight/7.16.10:
- resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
- '@babel/helper-validator-identifier': 7.16.7
- chalk: 2.4.2
- js-tokens: 4.0.0
- /@babel/highlight/7.18.6:
- resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
- /@babel/parser/7.17.9:
- resolution: {integrity: sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==}
- hasBin: true
- /@babel/parser/7.18.9:
- resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==}
- /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.18.9:
- resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
- '@babel/core': ^7.0.0-0
- '@babel/helper-plugin-utils': 7.16.7
- /@babel/plugin-syntax-jsx/7.16.5_@babel+core@7.18.9:
- resolution: {integrity: sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==}
- '@babel/helper-plugin-utils': 7.18.9
- /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.9:
- resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
- /@babel/plugin-transform-typescript/7.18.8_@babel+core@7.18.9:
- resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==}
- '@babel/helper-create-class-features-plugin': 7.18.9_@babel+core@7.18.9
- '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.9
- /@babel/runtime/7.17.2:
- resolution: {integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==}
- regenerator-runtime: 0.13.9
- dev: false
- /@babel/template/7.16.7:
- resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}
- /@babel/template/7.18.6:
- resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==}
- /@babel/traverse/7.17.9:
- resolution: {integrity: sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==}
- '@babel/helper-environment-visitor': 7.16.7
- '@babel/helper-function-name': 7.17.9
- '@babel/helper-hoist-variables': 7.16.7
- '@babel/helper-split-export-declaration': 7.16.7
- globals: 11.12.0
- /@babel/traverse/7.18.9:
- resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==}
- '@babel/helper-hoist-variables': 7.18.6
- /@babel/types/7.17.0:
- resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
- to-fast-properties: 2.0.0
- /@babel/types/7.18.9:
- resolution: {integrity: sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==}
- /@commitlint/cli/17.0.3:
- resolution: {integrity: sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A==}
- engines: {node: '>=v14'}
- '@commitlint/format': 17.0.0
- '@commitlint/lint': 17.0.3
- '@commitlint/load': 17.0.3
- '@commitlint/read': 17.0.0
- '@commitlint/types': 17.0.0
- execa: 5.1.1
- lodash: 4.17.21
- resolve-from: 5.0.0
- resolve-global: 1.0.0
- yargs: 17.3.1
- - '@swc/core'
- - '@swc/wasm'
- /@commitlint/config-conventional/17.0.3:
- resolution: {integrity: sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A==}
- conventional-changelog-conventionalcommits: 5.0.0
- /@commitlint/config-validator/17.0.3:
- resolution: {integrity: sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ==}
- ajv: 8.11.0
- /@commitlint/ensure/17.0.0:
- resolution: {integrity: sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==}
- /@commitlint/execute-rule/17.0.0:
- resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==}
- /@commitlint/format/17.0.0:
- resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==}
- chalk: 4.1.2
- /@commitlint/is-ignored/17.0.3:
- resolution: {integrity: sha512-/wgCXAvPtFTQZxsVxj7owLeRf5wwzcXLaYmrZPR4a87iD4sCvUIRl1/ogYrtOyUmHwWfQsvjqIB4mWE/SqWSnA==}
- semver: 7.3.7
- /@commitlint/lint/17.0.3:
- resolution: {integrity: sha512-2o1fk7JUdxBUgszyt41sHC/8Nd5PXNpkmuOo9jvGIjDHzOwXyV0PSdbEVTH3xGz9NEmjohFHr5l+N+T9fcxong==}
- '@commitlint/is-ignored': 17.0.3
- '@commitlint/parse': 17.0.0
- '@commitlint/rules': 17.0.0
- /@commitlint/load/17.0.3:
- resolution: {integrity: sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw==}
- '@commitlint/config-validator': 17.0.3
- '@commitlint/execute-rule': 17.0.0
- '@commitlint/resolve-extends': 17.0.3
- cosmiconfig: 7.0.1
- cosmiconfig-typescript-loader: 2.0.0_tdn3ypgnfy6bmey2q4hu5jonwi
- /@commitlint/message/17.0.0:
- resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==}
- /@commitlint/parse/17.0.0:
- resolution: {integrity: sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==}
- conventional-changelog-angular: 5.0.13
- conventional-commits-parser: 3.2.4
- /@commitlint/read/17.0.0:
- resolution: {integrity: sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA==}
- '@commitlint/top-level': 17.0.0
- fs-extra: 10.0.1
- git-raw-commits: 2.0.11
- /@commitlint/resolve-extends/17.0.3:
- resolution: {integrity: sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA==}
- import-fresh: 3.3.0
- /@commitlint/rules/17.0.0:
- resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==}
- '@commitlint/ensure': 17.0.0
- '@commitlint/message': 17.0.0
- '@commitlint/to-lines': 17.0.0
- /@commitlint/to-lines/17.0.0:
- resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==}
- /@commitlint/top-level/17.0.0:
- resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==}
- find-up: 5.0.0
- /@commitlint/types/17.0.0:
- resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==}
- /@cspotcode/source-map-consumer/0.8.0:
- resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==}
- engines: {node: '>= 12'}
- /@cspotcode/source-map-support/0.7.0:
- resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==}
- engines: {node: '>=12'}
- '@cspotcode/source-map-consumer': 0.8.0
- /@csstools/selector-specificity/2.0.1_444rcjjorr3kpoqtvoodsr46pu:
- resolution: {integrity: sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==}
- engines: {node: ^12 || ^14 || >=16}
- postcss: ^8.3
- postcss-selector-parser: ^6.0.10
- postcss-selector-parser: 6.0.10
- /@ctrl/tinycolor/3.4.1:
- resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==}
- engines: {node: '>=10'}
- /@element-plus/icons-vue/2.0.6_vue@3.2.37:
- resolution: {integrity: sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==}
- vue: ^3.2.0
- /@eslint/eslintrc/1.3.0:
- resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- ajv: 6.12.6
- espree: 9.3.2
- globals: 13.15.0
- ignore: 5.2.0
- js-yaml: 4.1.0
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- /@floating-ui/core/0.7.3:
- resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==}
- /@floating-ui/dom/0.5.4:
- resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==}
- '@floating-ui/core': 0.7.3
- /@humanwhocodes/config-array/0.9.2:
- resolution: {integrity: sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==}
- engines: {node: '>=10.10.0'}
- '@humanwhocodes/object-schema': 1.2.1
- /@humanwhocodes/object-schema/1.2.1:
- resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
- /@iconify/iconify/2.1.2:
- resolution: {integrity: sha512-QcUzFeEWkE/mW+BVtEGmcWATClcCOIJFiYUD/PiCWuTcdEA297o8D4oN6Ra44WrNOHu1wqNW4J0ioaDIiqaFOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@iconify/iconify/-/iconify-2.1.2.tgz}
- cross-fetch: 3.1.5
- - encoding
- /@iconify/iconify/2.2.1:
- resolution: {integrity: sha512-WJzw+3iicrF/tbjbxxRinSgy5FHdJoz/egTqwi3xCDkNRJPq482RX1iyaWrjNuY2vMNSPkQMuqHvZDXgA+WnwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@iconify/iconify/-/iconify-2.2.1.tgz}
- /@iconify/json/2.1.79:
- resolution: {integrity: sha512-4jCX9hRhZmJqeUQ+gTVH867FYdUvBkIZ4UYwWstHXPMIuCVsfqXy5OZn8wDIkEYfvfNy+s1m28/g4PSrWzdUtg==}
- '@iconify/types': 1.1.0
- pathe: 0.3.1
- /@iconify/types/1.1.0:
- resolution: {integrity: sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw==}
- /@intlify/bundle-utils/3.1.0_vue-i18n@9.1.10:
- resolution: {integrity: sha512-ghlJ0kR2cCQ8D+poKknC0Xx0ncOt3J3os7CcIAqqIWVF7k6AtGoCDnIru+YzlZcvFRNmP9wEZ7jKliojCdAWNg==}
- petite-vue-i18n: '*'
- vue-i18n: '*'
- peerDependenciesMeta:
- petite-vue-i18n:
- optional: true
- vue-i18n:
- '@intlify/message-compiler': 9.2.0-beta.39
- '@intlify/shared': 9.2.0-beta.39
- jsonc-eslint-parser: 1.4.1
- source-map: 0.6.1
- yaml-eslint-parser: 0.3.2
- /@intlify/core-base/9.1.10:
- resolution: {integrity: sha512-So9CNUavB/IsZ+zBmk2Cv6McQp6vc2wbGi1S0XQmJ8Vz+UFcNn9MFXAe9gY67PreIHrbLsLxDD0cwo1qsxM1Nw==}
- engines: {node: '>= 10'}
- '@intlify/devtools-if': 9.1.10
- '@intlify/message-compiler': 9.1.10
- '@intlify/message-resolver': 9.1.10
- '@intlify/runtime': 9.1.10
- '@intlify/shared': 9.1.10
- '@intlify/vue-devtools': 9.1.10
- /@intlify/devtools-if/9.1.10:
- resolution: {integrity: sha512-SHaKoYu6sog3+Q8js1y3oXLywuogbH1sKuc7NSYkN3GElvXSBaMoCzW+we0ZSFqj/6c7vTNLg9nQ6rxhKqYwnQ==}
- /@intlify/message-compiler/9.1.10:
- resolution: {integrity: sha512-+JiJpXff/XTb0EadYwdxOyRTB0hXNd4n1HaJ/a4yuV960uRmPXaklJsedW0LNdcptd/hYUZtCkI7Lc9J5C1gxg==}
- /@intlify/message-compiler/9.2.0-beta.39:
- resolution: {integrity: sha512-wHb3zzk/H3Wfx9U/SaXVenQ/qq2suqJMl/ppu+IdyGGMZxqC57zFqkgwWxEpqP4DzGeisjHe2myjLZQyV1haEQ==}
- engines: {node: '>= 14'}
- /@intlify/message-resolver/9.1.10:
- resolution: {integrity: sha512-5YixMG/M05m0cn9+gOzd4EZQTFRUu8RGhzxJbR1DWN21x/Z3bJ8QpDYj6hC4FwBj5uKsRfKpJQ3Xqg98KWoA+w==}
- /@intlify/runtime/9.1.10:
- resolution: {integrity: sha512-7QsuByNzpe3Gfmhwq6hzgXcMPpxz8Zxb/XFI6s9lQdPLPe5Lgw4U1ovRPZTOs6Y2hwitR3j/HD8BJNGWpJnOFA==}
- /@intlify/shared/9.1.10:
- resolution: {integrity: sha512-Om54xJeo1Vw+K1+wHYyXngE8cAbrxZHpWjYzMR9wCkqbhGtRV5VLhVc214Ze2YatPrWlS2WSMOWXR8JktX/IgA==}
- /@intlify/shared/9.2.0-beta.39:
- resolution: {integrity: sha512-FqzpkZVk/cTsywWc4mVbI2/fDQwYm8oXVwi7yuassiLps3yJK7P0s6grZaaXIX8gMODNLjJtJPd2KEOSj1lUyw==}
- /@intlify/vite-plugin-vue-i18n/5.0.0_vite@3.0.1+vue-i18n@9.1.10:
- resolution: {integrity: sha512-49W7y2b0m6Cg6qGoBkjdNgxyzFx3iOSbnxvDaWcN65raaceJVuwCwxXX1SqJbjHTg32rpTFi4jSlroqAV9Rr0w==}
- engines: {node: '>= 14.6'}
- vite: ^2.9.0 || ^3.0.0
- vite:
- '@intlify/bundle-utils': 3.1.0_vue-i18n@9.1.10
- '@rollup/pluginutils': 4.2.1
- fast-glob: 3.2.11
- /@intlify/vue-devtools/9.1.10:
- resolution: {integrity: sha512-5l3qYARVbkWAkagLu1XbDUWRJSL8br1Dj60wgMaKB0+HswVsrR6LloYZTg7ozyvM621V6+zsmwzbQxbVQyrytQ==}
- /@jridgewell/gen-mapping/0.3.2:
- resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
- '@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.11
- '@jridgewell/trace-mapping': 0.3.14
- /@jridgewell/resolve-uri/3.0.5:
- resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==}
- /@jridgewell/set-array/1.1.2:
- resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
- /@jridgewell/sourcemap-codec/1.4.11:
- resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==}
- /@jridgewell/trace-mapping/0.3.14:
- resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==}
- '@jridgewell/resolve-uri': 3.0.5
- /@jridgewell/trace-mapping/0.3.4:
- resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==}
- /@nodelib/fs.scandir/2.1.5:
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
- /@nodelib/fs.stat/2.0.5:
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- /@nodelib/fs.walk/1.2.8:
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.13.0
- /@polka/url/1.0.0-next.21:
- resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
- /@purge-icons/core/0.8.0:
- resolution: {integrity: sha512-8L6hP1U9XQO5B7kvquVJ5N7jzFvO0LZLXhBCjUQzzJzi42i6MAUanVKROApqbBuh21o9tmPwvNUg0xPe/uftRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@purge-icons/core/-/core-0.8.0.tgz}
- '@iconify/iconify': 2.1.2
- axios: 0.26.1_debug@4.3.4
- /@purge-icons/generated/0.8.1:
- resolution: {integrity: sha512-rIExGA33EGKEToqtc8WfpboaR7or1XRp+KV1Y5v/P0Rq7G5Me95DmP3ow/MpG7ql+XZ9xPzyS2naGRx5358+6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@purge-icons/generated/-/generated-0.8.1.tgz}
- /@rollup/pluginutils/4.2.0:
- resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==}
- engines: {node: '>= 8.0.0'}
- estree-walker: 2.0.2
- picomatch: 2.3.1
- /@rollup/pluginutils/4.2.1:
- resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
- /@sxzz/popperjs-es/2.11.7:
- resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
- /@transloadit/prettier-bytes/0.0.7:
- resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
- /@trysound/sax/0.2.0:
- resolution: {integrity: sha1-zMqrdYr1Z2Hre/N69vA/Mm3XmK0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@trysound/sax/download/@trysound/sax-0.2.0.tgz}
- engines: {node: '>=10.13.0'}
- /@tsconfig/node10/1.0.8:
- resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
- /@tsconfig/node12/1.0.9:
- resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==}
- /@tsconfig/node14/1.0.1:
- resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==}
- /@tsconfig/node16/1.0.2:
- resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==}
- /@types/eslint/8.4.2:
- resolution: {integrity: sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==}
- '@types/estree': 0.0.51
- '@types/json-schema': 7.0.9
- /@types/estree/0.0.51:
- resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
- /@types/event-emitter/0.3.3:
- resolution: {integrity: sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==}
- /@types/fined/1.1.3:
- resolution: {integrity: sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==}
- /@types/inquirer/8.2.1:
- resolution: {integrity: sha512-wKW3SKIUMmltbykg4I5JzCVzUhkuD9trD6efAmYgN2MrSntY0SMRQzEnD3mkyJ/rv9NLbTC7g3hKKE86YwEDLw==}
- '@types/through': 0.0.30
- rxjs: 7.5.5
- /@types/intro.js/5.1.0:
- resolution: {integrity: sha512-XHkD6t7f3bn8B2//kOlznRzmk15KvsRkFpY6i8em/eDphblQ8QHbCiW+6OPjX7CxI0aVNVJK6Yamb2h2KMmFdA==}
- /@types/json-schema/7.0.9:
- resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==}
- /@types/liftoff/4.0.0:
- resolution: {integrity: sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==}
- '@types/fined': 1.1.3
- /@types/lodash-es/4.17.6:
- resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/lodash-es/-/lodash-es-4.17.6.tgz}
- '@types/lodash': 4.14.178
- /@types/lodash/4.14.178:
- resolution: {integrity: sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/lodash/-/lodash-4.14.178.tgz}
- /@types/lodash/4.14.182:
- resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==}
- /@types/minimatch/3.0.5:
- resolution: {integrity: sha1-EAHMXmo3BLg8I2An538vWOoBD0A=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.5.tgz}
- /@types/minimist/1.2.2:
- resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
- /@types/node/18.0.6:
- resolution: {integrity: sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==}
- /@types/normalize-package-data/2.4.1:
- resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
- /@types/nprogress/0.2.0:
- resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/nprogress/download/@types/nprogress-0.2.0.tgz}
- /@types/parse-json/4.0.0:
- resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
- /@types/qrcode/1.4.2:
- resolution: {integrity: sha512-7uNT9L4WQTNJejHTSTdaJhfBSCN73xtXaHFyBJ8TSwiLhe4PRuTue7Iph0s2nG9R/ifUaSnGhLUOZavlBEqDWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/qrcode/download/@types/qrcode-1.4.2.tgz}
- /@types/qs/6.9.7:
- resolution: {integrity: sha1-Y7t9Bn2xB8weRXwwO8JdUR/r9ss=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.7.tgz}
- /@types/svgo/2.6.1:
- resolution: {integrity: sha512-4BfUnd19L25BD2iRyZTNuG4pfL9HBs+rvF7zp5maKhbX42uOpc5prGdBXXmCdHlVZfTWq8pNP/vxQt9v8ACxqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/svgo/-/svgo-2.6.1.tgz}
- /@types/through/0.0.30:
- resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==}
- /@types/web-bluetooth/0.0.14:
- resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==}
- /@typescript-eslint/eslint-plugin/5.30.6_b7n364ggt6o4xlkgyoaww3ph3q:
- resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==}
- '@typescript-eslint/parser': ^5.0.0
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- typescript: '*'
- typescript:
- '@typescript-eslint/scope-manager': 5.30.6
- '@typescript-eslint/type-utils': 5.30.6_he2ccbldppg44uulnyq4rwocfa
- '@typescript-eslint/utils': 5.30.6_he2ccbldppg44uulnyq4rwocfa
- functional-red-black-tree: 1.0.1
- regexpp: 3.2.0
- tsutils: 3.21.0_typescript@4.7.4
- /@typescript-eslint/parser/5.30.6_he2ccbldppg44uulnyq4rwocfa:
- resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==}
- '@typescript-eslint/types': 5.30.6
- '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4
- /@typescript-eslint/scope-manager/5.30.6:
- resolution: {integrity: sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==}
- '@typescript-eslint/visitor-keys': 5.30.6
- /@typescript-eslint/type-utils/5.30.6_he2ccbldppg44uulnyq4rwocfa:
- resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==}
- eslint: '*'
- /@typescript-eslint/types/5.30.6:
- resolution: {integrity: sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==}
- /@typescript-eslint/typescript-estree/5.30.6_typescript@4.7.4:
- resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==}
- globby: 11.1.0
- is-glob: 4.0.3
- /@typescript-eslint/utils/5.30.6_he2ccbldppg44uulnyq4rwocfa:
- resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==}
- eslint-scope: 5.1.1
- eslint-utils: 3.0.0_eslint@8.20.0
- - typescript
- /@typescript-eslint/visitor-keys/5.30.6:
- resolution: {integrity: sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==}
- eslint-visitor-keys: 3.3.0
- /@uppy/companion-client/2.0.4:
- resolution: {integrity: sha512-Uc3bJzgSdvB+wKYoAbmhY7jv5DlziZQdK0w+5Eku2M93xcOictgJPoti94rj/PtZRH3gyszDkwACERs/bfbI7g==}
- '@uppy/utils': 4.0.5
- namespace-emitter: 2.0.1
- /@uppy/core/2.1.4:
- resolution: {integrity: sha512-tVC44D66BbISD3gJaqH3xUrVEP5Pah0cDQV98sI3N6W6yMSOW4m3xuhqhcWvEd4DolKCp0vyvc/pW6rsQbMVRA==}
- '@transloadit/prettier-bytes': 0.0.7
- '@uppy/store-default': 2.0.3
- lodash.throttle: 4.1.1
- mime-match: 1.0.2
- nanoid: 3.3.4
- preact: 10.6.5
- /@uppy/store-default/2.0.3:
- resolution: {integrity: sha512-2BGlN1sW0cFv4rOqTK8dfSg579S984N1HxCJxLFqeW9nWD6zd/O8Omyd85tbxGQ+FLZLTmLOm/feD0YeCBMahg==}
- /@uppy/utils/4.0.5:
- resolution: {integrity: sha512-uRv921A69UMjuWCLSC5tKXuIVoMOROVpFstIAQv5CoiCOCXyofcWpvAqELT7qlQJ5VRWha3uF5d/Z94SNnwxew==}
- /@uppy/xhr-upload/2.0.7_@uppy+core@2.1.4:
- resolution: {integrity: sha512-bzCc654B0HfNmL4BIr7gGTvg2pQBucYgPmAb4ST7jGyWlEJWbSxMXR/19zvISQzpJ6v1uP6q2ppgxGMqNdj/rA==}
- '@uppy/core': ^2.1.4
- '@uppy/companion-client': 2.0.4
- '@uppy/core': 2.1.4
- /@vitejs/plugin-vue-jsx/2.0.0_vite@3.0.1+vue@3.2.37:
- resolution: {integrity: sha512-WF9ApZ/ivyyW3volQfu0Td0KNPhcccYEaRNzNY1NxRLVJQLSX0nFqquv3e2g7MF74p1XZK4bGtDL2y5i5O5+1A==}
- engines: {node: '>=14.18.0'}
- vite: ^3.0.0
- vue: ^3.0.0
- '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.9
- '@babel/plugin-transform-typescript': 7.18.8_@babel+core@7.18.9
- '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.9
- /@vitejs/plugin-vue/3.0.1_vite@3.0.1+vue@3.2.37:
- resolution: {integrity: sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==}
- engines: {node: ^14.18.0 || >=16.0.0}
- vue: ^3.2.25
- /@volar/code-gen/0.38.8:
- resolution: {integrity: sha512-e37jd+JwNjBpWiBblsdmYMbJ9bELiuj2yZrsXv1IVKpYNSfvS92ZiYjJqVXHUwpzNeZjFG0RCd5nTpbiebwANw==}
- '@volar/source-map': 0.38.8
- /@volar/source-map/0.38.8:
- resolution: {integrity: sha512-JZvpjW/z2U3wq5wvwcTounPrRAZuSl4hlVKr3y7y72bKr++6W05OnX7fl/ddw39G/wLHdI2ag5+4JWsSd/EYhg==}
- /@volar/vue-code-gen/0.38.8:
- resolution: {integrity: sha512-iQVNmIu1TqnqTko+l9yeylmZipZ8zNH20XZAK9+48hkv2fEQnnJn5AI2W9Zb2M5DkGMpbYiJk9Fq1vm51YY1+g==}
- '@volar/code-gen': 0.38.8
- '@vue/compiler-core': 3.2.37
- '@vue/compiler-dom': 3.2.37
- '@vue/shared': 3.2.37
- /@volar/vue-typescript/0.38.8:
- resolution: {integrity: sha512-7WeFt5piz9I6FKw2cQQCWm+75MxS6xCOGm300iu+hJORlroN2dwWbwj97pQnDGbjQbftCRplUYf0GqmhcOsanQ==}
- '@volar/vue-code-gen': 0.38.8
- '@vue/compiler-sfc': 3.2.37
- '@vue/reactivity': 3.2.37
- /@vue/babel-helper-vue-transform-on/1.0.2:
- resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==}
- /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.18.9:
- resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==}
- '@babel/helper-module-imports': 7.16.7
- '@babel/plugin-syntax-jsx': 7.16.5_@babel+core@7.18.9
- '@babel/template': 7.16.7
- '@babel/traverse': 7.17.9
- '@babel/types': 7.17.0
- '@vue/babel-helper-vue-transform-on': 1.0.2
- camelcase: 6.2.1
- html-tags: 3.2.0
- svg-tags: 1.0.0
- - '@babel/core'
- /@vue/compiler-core/3.2.37:
- resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==}
- '@babel/parser': 7.17.9
- /@vue/compiler-dom/3.2.37:
- resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==}
- /@vue/compiler-sfc/3.2.37:
- resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==}
- '@vue/compiler-ssr': 3.2.37
- '@vue/reactivity-transform': 3.2.37
- magic-string: 0.25.7
- /@vue/compiler-ssr/3.2.37:
- resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==}
- /@vue/devtools-api/6.1.4:
- resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==}
- /@vue/reactivity-transform/3.2.37:
- resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==}
- /@vue/reactivity/3.2.37:
- resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==}
- /@vue/runtime-core/3.2.37:
- resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==}
- /@vue/runtime-dom/3.2.37:
- resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==}
- '@vue/runtime-core': 3.2.37
- csstype: 2.6.19
- /@vue/server-renderer/3.2.37_vue@3.2.37:
- resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==}
- /@vue/shared/3.2.37:
- resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}
- /@vueuse/core/8.9.4_vue@3.2.37:
- resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==}
- '@vue/composition-api': ^1.1.0
- vue: ^2.6.0 || ^3.2.0
- '@vue/composition-api':
- vue:
- '@types/web-bluetooth': 0.0.14
- '@vueuse/metadata': 8.9.4
- '@vueuse/shared': 8.9.4_vue@3.2.37
- vue-demi: 0.12.1_vue@3.2.37
- /@vueuse/metadata/8.9.4:
- resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==}
- /@vueuse/shared/8.9.4_vue@3.2.37:
- resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==}
- /@wangeditor/basic-modules/1.1.3_wc2s6ucqguq7ye7cv5gs4ie3pa:
- resolution: {integrity: sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==}
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- lodash.throttle: ^4.1.1
- nanoid: ^3.2.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
- '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy
- dom7: 3.0.0
- is-url: 1.2.4
- slate: 0.72.8
- snabbdom: 3.3.1
- /@wangeditor/code-highlight/1.0.2_f4mxrtym3fqiukj5pvowt5wic4:
- resolution: {integrity: sha512-SCtOcUxjKqIso/LSxGSOaYr3G6MC2En0gNTyHIMCG928T0fo0ufaqp/vIXKQzVL2Y+X/CSAOB2EbrFlgGvr0AQ==}
- prismjs: 1.26.0
- /@wangeditor/core/1.1.8_bevuzdaogp7zvgcbkum7pdqkgy:
- resolution: {integrity: sha512-TfCtAXfL/bgmUKQbtLEaboK7wH49G7BQqYoQsylZ7MyD1LhYnVLXp/4RzJbuIr4cV9Bs1Ncz1JoZ9tqDe6WImw==}
- '@uppy/core': ^2.1.1
- '@uppy/xhr-upload': ^2.0.3
- is-hotkey: ^0.2.0
- lodash.camelcase: ^4.3.0
- lodash.clonedeep: ^4.5.0
- lodash.debounce: ^4.0.8
- lodash.foreach: ^4.5.0
- lodash.isequal: ^4.5.0
- lodash.toarray: ^4.4.0
- '@types/event-emitter': 0.3.3
- '@uppy/xhr-upload': 2.0.7_@uppy+core@2.1.4
- event-emitter: 0.3.5
- html-void-elements: 2.0.1
- i18next: 20.6.1
- is-hotkey: 0.2.0
- lodash.camelcase: 4.3.0
- lodash.clonedeep: 4.5.0
- lodash.debounce: 4.0.8
- lodash.foreach: 4.5.0
- lodash.isequal: 4.5.0
- lodash.toarray: 4.4.0
- scroll-into-view-if-needed: 2.2.29
- slate-history: 0.66.0_slate@0.72.8
- /@wangeditor/editor-for-vue/5.1.10_wyweaejqxhtklhndhf2ynbwhvm:
- resolution: {integrity: sha512-OdtMnMt0HpYriY1+Efo3KHviUB5zwlZIaHypNw5MPRn8uFq3MFLET5u8pbB/PiEF5Ff88YAp7T9Xw1dvJzT8sA==}
- '@wangeditor/editor': '>=5.0.0'
- vue: ^3.0.5
- /@wangeditor/editor/5.1.11:
- resolution: {integrity: sha512-jJbY2OirSy16UY9OkOCBw0DhQpOzTIGRLYL724wYSWf9nO6DpO21bemmEoDDF5zULtabEm3w0dvSxTSVd7amLw==}
- '@wangeditor/basic-modules': 1.1.3_wc2s6ucqguq7ye7cv5gs4ie3pa
- '@wangeditor/code-highlight': 1.0.2_f4mxrtym3fqiukj5pvowt5wic4
- '@wangeditor/list-module': 1.0.2_f4mxrtym3fqiukj5pvowt5wic4
- '@wangeditor/table-module': 1.1.1_bvrp5jl242d2qfje6ynmi2zcee
- '@wangeditor/upload-image-module': 1.0.1_ufbnlxopmh6qp74j246va2ubh4
- '@wangeditor/video-module': 1.1.1_gg5oy5micpmd7yyutevooksz6m
- /@wangeditor/list-module/1.0.2_f4mxrtym3fqiukj5pvowt5wic4:
- resolution: {integrity: sha512-VfENZEFvsLTiLxN/cj8cibFGy9NVV+/cfATTiLiH9ef+8lgKv8apttXYVlqIAfnlJLLuCk0cIm8c/zH+hbtrZg==}
- /@wangeditor/table-module/1.1.1_bvrp5jl242d2qfje6ynmi2zcee:
- resolution: {integrity: sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==}
- /@wangeditor/upload-image-module/1.0.1_ufbnlxopmh6qp74j246va2ubh4:
- resolution: {integrity: sha512-vgUV4ENttTITblqtVuzleIq732OmzmzzgrIvX6b3GRGPSw5u8glJ/87tOEhvHjHECc4oFo18B7xzJ1GpBj79/w==}
- '@uppy/core': ^2.0.3
- '@wangeditor/basic-modules': 1.x
- /@wangeditor/video-module/1.1.1_gg5oy5micpmd7yyutevooksz6m:
- resolution: {integrity: sha512-6gzpS5cnJihW2T0HFjqmbv6v8ouyaeMUjdM2X8BPohwD74p1ov00dCmRt5QekNTyYSmRHK0ASkUMOvRGqaDxMg==}
- '@uppy/xhr-upload': ^2.0.7
- /@windicss/config/1.8.4:
- resolution: {integrity: sha512-i4fFGFfZoRess6WMkauykHC3PFd9xKYVx7lSuLfMK7sgo6x3+l4dY42GbsWMHyLqH1sTMfyt1LgfXSIKYJozSA==}
- jiti: 1.14.0
- /@windicss/config/1.8.7:
- resolution: {integrity: sha512-8n+/Y36j5L3rw2tgMdLjeGRuNV7VYfKoHoraLK6Bk9OJ1MTPd5vv7pekof/uOPWVV7WWjVeZ6CTO8SDbDDW3iw==}
- /@windicss/plugin-utils/1.8.4:
- resolution: {integrity: sha512-DqJVwAfzlgd8nYSNlmhXOey32pI8UwH7QiOWdFS/AR2O/q9oLDGHDn97Its/kZdfoyhi8ylwZNP2Pk0H7cihhQ==}
- '@antfu/utils': 0.5.2
- '@windicss/config': 1.8.4
- magic-string: 0.26.2
- micromatch: 4.0.5
- /@windicss/plugin-utils/1.8.7:
- resolution: {integrity: sha512-dfj95olNZyGFDPFMBvE5oq8hA5f0ooUJZjVdWlthS4ek4W1/xNOHDxB6ygWR8LE9zCOXZykApjt1LOhy9Ky2QA==}
- '@windicss/config': 1.8.7
- /@zxcvbn-ts/core/2.0.3:
- resolution: {integrity: sha512-lHzjnnTFGquVLpG1IraXlDzZ//h/11Ws7ZuwIeDTIExaLFntEdZh1EirwgRF34S4ceou3zxG15as2Ik5W473hA==}
- /JSONStream/1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- jsonparse: 1.3.1
- through: 2.3.8
- /acorn-jsx/5.3.2_acorn@7.4.1:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn: 7.4.1
- /acorn-jsx/5.3.2_acorn@8.7.1:
- acorn: 8.7.1
- /acorn-walk/8.2.0:
- resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
- engines: {node: '>=0.4.0'}
- /acorn/7.4.1:
- resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
- /acorn/8.7.1:
- resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}
- /aggregate-error/3.1.0:
- resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
- engines: {node: '>=8'}
- clean-stack: 2.2.0
- indent-string: 4.0.0
- /ajv/6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
- fast-deep-equal: 3.1.3
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
- /ajv/8.11.0:
- resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
- /animate.css/4.1.1:
- resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/animate.css/download/animate.css-4.1.1.tgz}
- /ansi-escapes/4.3.2:
- resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
- type-fest: 0.21.3
- /ansi-regex/2.1.1:
- resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
- engines: {node: '>=0.10.0'}
- /ansi-regex/5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- /ansi-regex/6.0.1:
- resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
- /ansi-styles/2.2.1:
- resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
- /ansi-styles/3.2.1:
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
- engines: {node: '>=4'}
- color-convert: 1.9.3
- /ansi-styles/4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- color-convert: 2.0.1
- /ansi-styles/6.1.0:
- resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==}
- /anymatch/3.1.2:
- resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
- normalize-path: 3.0.0
- /arg/4.1.3:
- resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
- /argparse/2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- /arr-diff/4.0.0:
- resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arr-diff/-/arr-diff-4.0.0.tgz}
- /arr-flatten/1.1.0:
- resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arr-flatten/-/arr-flatten-1.1.0.tgz}
- /arr-union/3.1.0:
- resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arr-union/-/arr-union-3.1.0.tgz}
- /array-each/1.0.1:
- resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==}
- /array-ify/1.0.0:
- resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
- /array-slice/1.1.0:
- resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==}
- /array-union/2.1.0:
- resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
- /array-unique/0.3.2:
- resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/array-unique/-/array-unique-0.3.2.tgz}
- /arrify/1.0.1:
- resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
- /arrify/2.0.1:
- resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arrify/-/arrify-2.0.1.tgz}
- /assign-symbols/1.0.0:
- resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/assign-symbols/-/assign-symbols-1.0.0.tgz}
- /astral-regex/2.0.0:
- resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
- /async-validator/4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- /async/0.9.2:
- resolution: {integrity: sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/async/-/async-0.9.2.tgz}
- /asynckit/0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- /atob/2.1.2:
- resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/atob/-/atob-2.1.2.tgz}
- engines: {node: '>= 4.5.0'}
- /autoprefixer/10.4.7_postcss@8.4.14:
- resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==}
- engines: {node: ^10 || ^12 || >=14}
- postcss: ^8.1.0
- caniuse-lite: 1.0.30001335
- fraction.js: 4.2.0
- normalize-range: 0.1.2
- picocolors: 1.0.0
- postcss-value-parser: 4.2.0
- /axios/0.26.1_debug@4.3.4:
- resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
- follow-redirects: 1.14.9
- - debug
- /axios/0.27.2:
- resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
- form-data: 4.0.0
- /balanced-match/1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- /balanced-match/2.0.0:
- resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}
- /base/0.11.2:
- resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/base/-/base-0.11.2.tgz}
- cache-base: 1.0.1
- class-utils: 0.3.6
- component-emitter: 1.3.0
- define-property: 1.0.0
- isobject: 3.0.1
- mixin-deep: 1.3.2
- pascalcase: 0.1.1
- /base64-js/1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- /big.js/5.2.2:
- resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz}
- /binary-extensions/2.2.0:
- resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
- /bl/4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
- buffer: 5.7.1
- inherits: 2.0.4
- readable-stream: 3.6.0
- /bl/5.0.0:
- resolution: {integrity: sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==}
- buffer: 6.0.3
- /bluebird/3.7.2:
- resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/bluebird/-/bluebird-3.7.2.tgz}
- /boolbase/1.0.0:
- resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
- /brace-expansion/1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
- balanced-match: 1.0.2
- concat-map: 0.0.1
- /braces/2.3.2:
- resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
- arr-flatten: 1.1.0
- array-unique: 0.3.2
- extend-shallow: 2.0.1
- fill-range: 4.0.0
- repeat-element: 1.1.4
- snapdragon: 0.8.2
- snapdragon-node: 2.1.1
- split-string: 3.1.0
- to-regex: 3.0.2
- /braces/3.0.2:
- resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
- fill-range: 7.0.1
- /browserslist/4.20.3:
- resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- electron-to-chromium: 1.4.134
- escalade: 3.1.1
- node-releases: 2.0.4
- /buffer-from/1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/buffer-from/-/buffer-from-1.1.2.tgz}
- /buffer/5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
- base64-js: 1.5.1
- ieee754: 1.2.1
- /buffer/6.0.3:
- resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
- /cac/6.7.12:
- resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==}
- /cache-base/1.0.1:
- resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/cache-base/-/cache-base-1.0.1.tgz}
- collection-visit: 1.0.0
- get-value: 2.0.6
- has-value: 1.0.0
- set-value: 2.0.1
- to-object-path: 0.3.0
- union-value: 1.0.1
- unset-value: 1.0.0
- /call-bind/1.0.2:
- resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
- function-bind: 1.1.1
- get-intrinsic: 1.1.1
- /callsites/3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
- /camel-case/4.1.2:
- resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
- pascal-case: 3.1.2
- tslib: 2.3.1
- /camelcase-keys/6.2.2:
- resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
- camelcase: 5.3.1
- map-obj: 4.3.0
- quick-lru: 4.0.1
- /camelcase/5.3.1:
- resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
- /camelcase/6.2.1:
- resolution: {integrity: sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==}
- /caniuse-lite/1.0.30001335:
- resolution: {integrity: sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==}
- /capital-case/1.0.4:
- resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}
- no-case: 3.0.4
- upper-case-first: 2.0.2
- /chalk/1.1.3:
- resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
- ansi-styles: 2.2.1
- escape-string-regexp: 1.0.5
- has-ansi: 2.0.0
- strip-ansi: 3.0.1
- supports-color: 2.0.0
- /chalk/2.4.2:
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
- ansi-styles: 3.2.1
- supports-color: 5.5.0
- /chalk/3.0.0:
- resolution: {integrity: sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz}
- ansi-styles: 4.3.0
- supports-color: 7.2.0
- /chalk/4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- /chalk/5.0.1:
- resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
- /change-case/4.1.2:
- resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==}
- camel-case: 4.1.2
- capital-case: 1.0.4
- constant-case: 3.0.4
- dot-case: 3.0.4
- header-case: 2.0.4
- param-case: 3.0.4
- path-case: 3.0.4
- sentence-case: 3.0.4
- snake-case: 3.0.4
- /chardet/0.7.0:
- resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
- /cheerio-select/1.6.0:
- resolution: {integrity: sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==}
- css-select: 4.3.0
- css-what: 6.1.0
- domelementtype: 2.3.0
- domhandler: 4.3.1
- domutils: 2.8.0
- /cheerio/1.0.0-rc.10:
- resolution: {integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==}
- engines: {node: '>= 6'}
- cheerio-select: 1.6.0
- dom-serializer: 1.3.2
- htmlparser2: 6.1.0
- parse5: 6.0.1
- parse5-htmlparser2-tree-adapter: 6.0.1
- /chokidar/3.5.3:
- resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
- engines: {node: '>= 8.10.0'}
- anymatch: 3.1.2
- braces: 3.0.2
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.2
- /class-utils/0.3.6:
- resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/class-utils/-/class-utils-0.3.6.tgz}
- arr-union: 3.1.0
- define-property: 0.2.5
- static-extend: 0.1.2
- /clean-css/5.2.4:
- resolution: {integrity: sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/clean-css/-/clean-css-5.2.4.tgz}
- engines: {node: '>= 10.0'}
- /clean-stack/2.2.0:
- resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
- /cli-cursor/3.1.0:
- resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
- restore-cursor: 3.1.0
- /cli-cursor/4.0.0:
- resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- restore-cursor: 4.0.0
- /cli-spinners/2.6.1:
- resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==}
- /cli-truncate/2.1.0:
- resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
- slice-ansi: 3.0.0
- string-width: 4.2.3
- /cli-truncate/3.1.0:
- resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
- slice-ansi: 5.0.0
- string-width: 5.0.1
- /cli-width/3.0.0:
- resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
- /cliui/6.0.0:
- resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
- strip-ansi: 6.0.1
- wrap-ansi: 6.2.0
- /cliui/7.0.4:
- resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
- wrap-ansi: 7.0.0
- /clone-regexp/2.2.0:
- resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==}
- is-regexp: 2.1.0
- /clone/1.0.4:
- resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
- engines: {node: '>=0.8'}
- /clone/2.1.2:
- resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
- /collection-visit/1.0.0:
- resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/collection-visit/-/collection-visit-1.0.0.tgz}
- map-visit: 1.0.0
- object-visit: 1.0.1
- /color-convert/1.9.3:
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
- color-name: 1.1.3
- /color-convert/2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
- color-name: 1.1.4
- /color-name/1.1.3:
- resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
- /color-name/1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- /colord/2.9.2:
- resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==}
- /colorette/2.0.16:
- resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==}
- /colorette/2.0.17:
- resolution: {integrity: sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==}
- /combined-stream/1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
- delayed-stream: 1.0.0
- /commander/2.20.3:
- resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- /commander/7.2.0:
- resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
- /commander/8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- /commander/9.3.0:
- resolution: {integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==}
- engines: {node: ^12.20.0 || >=14}
- /compare-func/2.0.0:
- resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
- array-ify: 1.0.0
- dot-prop: 5.3.0
- /component-emitter/1.3.0:
- resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/component-emitter/-/component-emitter-1.3.0.tgz}
- /compute-scroll-into-view/1.0.17:
- resolution: {integrity: sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==}
- /concat-map/0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
- /connect-history-api-fallback/1.6.0:
- resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz}
- /connect/3.7.0:
- resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
- engines: {node: '>= 0.10.0'}
- debug: 2.6.9
- finalhandler: 1.1.2
- parseurl: 1.3.3
- utils-merge: 1.0.1
- /consola/2.15.3:
- resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/consola/-/consola-2.15.3.tgz}
- /constant-case/3.0.4:
- resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
- upper-case: 2.0.2
- /conventional-changelog-angular/5.0.13:
- resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
- compare-func: 2.0.0
- q: 1.5.1
- /conventional-changelog-conventionalcommits/5.0.0:
- resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==}
- /conventional-commits-parser/3.2.4:
- resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
- is-text-path: 1.0.1
- JSONStream: 1.3.5
- meow: 8.1.2
- split2: 3.2.2
- through2: 4.0.2
- /convert-source-map/1.8.0:
- resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
- safe-buffer: 5.1.2
- /copy-anything/2.0.3:
- resolution: {integrity: sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==}
- is-what: 3.14.1
- /copy-descriptor/0.1.1:
- resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz}
- /cors/2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/cors/-/cors-2.8.5.tgz}
- engines: {node: '>= 0.10'}
- object-assign: 4.1.1
- vary: 1.1.2
- /cosmiconfig-typescript-loader/2.0.0_tdn3ypgnfy6bmey2q4hu5jonwi:
- resolution: {integrity: sha512-2NlGul/E3vTQEANqPziqkA01vfiuUU8vT0jZAuUIjEW8u3eCcnCQWLggapCjhbF76s7KQF0fM0kXSKmzaDaG1g==}
- engines: {node: '>=12', npm: '>=6'}
- '@types/node': '*'
- typescript: '>=3'
- ts-node: 10.7.0_tdn3ypgnfy6bmey2q4hu5jonwi
- /cosmiconfig/7.0.1:
- resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==}
- '@types/parse-json': 4.0.0
- parse-json: 5.2.0
- path-type: 4.0.0
- yaml: 1.10.2
- /create-require/1.1.1:
- resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
- /cross-fetch/3.1.5:
- resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/cross-fetch/-/cross-fetch-3.1.5.tgz}
- node-fetch: 2.6.7
- /cross-spawn/7.0.3:
- resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
- /css-functions-list/3.1.0:
- resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==}
- engines: {node: '>=12.22'}
- /css-select/4.2.1:
- resolution: {integrity: sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/css-select/-/css-select-4.2.1.tgz}
- boolbase: 1.0.0
- css-what: 5.1.0
- nth-check: 2.0.1
- /css-select/4.3.0:
- resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
- /css-tree/1.1.3:
- resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/css-tree/-/css-tree-1.1.3.tgz}
- engines: {node: '>=8.0.0'}
- mdn-data: 2.0.14
- /css-what/5.1.0:
- resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==}
- /css-what/6.1.0:
- resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
- /cssesc/3.0.0:
- resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
- /csso/4.2.0:
- resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/csso/-/csso-4.2.0.tgz}
- css-tree: 1.1.3
- /csstype/2.6.19:
- resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==}
- /d/1.0.1:
- resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
- es5-ext: 0.10.53
- type: 1.2.0
- /dargs/7.0.0:
- resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
- /dayjs/1.11.3:
- resolution: {integrity: sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==}
- /debug/2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- supports-color: '*'
- supports-color:
- ms: 2.0.0
- /debug/3.2.7:
- resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
- ms: 2.1.3
- /debug/4.3.3:
- resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/debug/-/debug-4.3.3.tgz}
- engines: {node: '>=6.0'}
- ms: 2.1.2
- /debug/4.3.4:
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
- /decamelize-keys/1.1.0:
- resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==}
- decamelize: 1.2.0
- map-obj: 1.0.1
- /decamelize/1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- /declass/0.0.1:
- resolution: {integrity: sha512-V1tO9kGH+GLfkeiYCF016HSBcTP5mI+eMusSFgxZv0BzKvUQgI/Xn6FdoFuMwQHEqxKXhaW02s8oZqXPclKPUg==}
- cheerio: 1.0.0-rc.10
- /decode-uri-component/0.2.0:
- resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz}
- engines: {node: '>=0.10'}
- /deep-is/0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
- /defaults/1.0.3:
- resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==}
- clone: 1.0.4
- /define-property/0.2.5:
- resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/define-property/-/define-property-0.2.5.tgz}
- is-descriptor: 0.1.6
- /define-property/1.0.0:
- resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/define-property/-/define-property-1.0.0.tgz}
- is-descriptor: 1.0.2
- /define-property/2.0.2:
- resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/define-property/-/define-property-2.0.2.tgz}
- /del/6.0.0:
- resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==}
- graceful-fs: 4.2.8
- is-path-cwd: 2.2.0
- is-path-inside: 3.0.3
- p-map: 4.0.0
- slash: 3.0.0
- /delayed-stream/1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- /detect-file/1.0.0:
- resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
- /diff/4.0.2:
- resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
- engines: {node: '>=0.3.1'}
- /dijkstrajs/1.0.2:
- resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==}
- /dir-glob/3.0.1:
- resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
- /doctrine/3.0.0:
- resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
- esutils: 2.0.3
- /dom-serializer/0.2.2:
- resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}
- entities: 2.2.0
- /dom-serializer/1.3.2:
- resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==}
- /dom-serializer/2.0.0:
- resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
- domhandler: 5.0.3
- entities: 4.3.1
- /dom7/3.0.0:
- resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
- ssr-window: 3.0.0
- /domelementtype/1.3.1:
- resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
- /domelementtype/2.3.0:
- resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
- /domhandler/2.4.2:
- resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
- domelementtype: 1.3.1
- /domhandler/4.3.1:
- resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
- engines: {node: '>= 4'}
- /domhandler/5.0.3:
- resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
- /domutils/1.7.0:
- resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
- dom-serializer: 0.2.2
- /domutils/2.8.0:
- resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
- /domutils/3.0.1:
- resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}
- dom-serializer: 2.0.0
- /dot-case/3.0.4:
- resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
- /dot-prop/5.3.0:
- resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
- is-obj: 2.0.0
- /dotenv-expand/8.0.2:
- resolution: {integrity: sha512-vKKAk+VOzAWOV/dPIeSYqhgC/TQY+6L6Ibkzfsr8xd1stdBsTuGu9asCOXgbYbBeS+f2Y6lqqEuw7riOA+xEUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/dotenv-expand/-/dotenv-expand-8.0.2.tgz}
- /dotenv/16.0.0:
- resolution: {integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/dotenv/-/dotenv-16.0.0.tgz}
- /echarts-wordcloud/2.0.0_echarts@5.3.3:
- resolution: {integrity: sha512-K7l6pTklqdW7ZWzT/1CS0KhBSINr/cd7c5N1fVMzZMwLQHEwT7x+nivK7g5hkVh7WNcAv4Dn6/ZS5zMKRozC1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/echarts-wordcloud/download/echarts-wordcloud-2.0.0.tgz}
- echarts: ^5.0.1
- /echarts/5.3.3:
- resolution: {integrity: sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==}
- tslib: 2.3.0
- zrender: 5.3.2
- /ee-first/1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- /ejs/3.1.6:
- resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/ejs/-/ejs-3.1.6.tgz}
- jake: 10.8.2
- /electron-to-chromium/1.4.134:
- resolution: {integrity: sha512-OdD7M2no4Mi8PopfvoOuNcwYDJ2mNFxaBfurA6okG3fLBaMcFah9S+si84FhX+FIWLKkdaiHfl4A+5ep/gOVrg==}
- /element-plus/2.2.9_vue@3.2.37:
- resolution: {integrity: sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ==}
- '@ctrl/tinycolor': 3.4.1
- '@element-plus/icons-vue': 2.0.6_vue@3.2.37
- '@floating-ui/dom': 0.5.4
- '@popperjs/core': /@sxzz/popperjs-es/2.11.7
- '@types/lodash': 4.14.182
- async-validator: 4.2.5
- escape-html: 1.0.3
- lodash-es: 4.17.21
- lodash-unified: 1.0.2_3ib2ivapxullxkx3xftsimdk7u
- memoize-one: 6.0.0
- normalize-wheel-es: 1.1.2
- - '@vue/composition-api'
- /emoji-regex/8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
- /emoji-regex/9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
- /emojis-list/3.0.0:
- resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/emojis-list/-/emojis-list-3.0.0.tgz}
- /encode-utf8/1.0.3:
- resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==}
- /encodeurl/1.0.2:
- resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
- /end-of-stream/1.4.4:
- resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
- once: 1.4.0
- /entities/1.1.2:
- resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
- /entities/2.2.0:
- resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
- /entities/4.3.1:
- resolution: {integrity: sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==}
- engines: {node: '>=0.12'}
- /errno/0.1.8:
- resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
- requiresBuild: true
- prr: 1.0.1
- /error-ex/1.3.2:
- resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
- is-arrayish: 0.2.1
- /es-module-lexer/0.9.3:
- resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
- /es5-ext/0.10.53:
- resolution: {integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==}
- es6-iterator: 2.0.3
- es6-symbol: 3.1.3
- next-tick: 1.0.0
- /es6-iterator/2.0.3:
- resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
- d: 1.0.1
- /es6-symbol/3.1.3:
- resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
- ext: 1.6.0
- /esbuild-android-64/0.14.49:
- resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==}
- cpu: [x64]
- os: [android]
- /esbuild-android-arm64/0.14.49:
- resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==}
- cpu: [arm64]
- /esbuild-darwin-64/0.14.49:
- resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==}
- os: [darwin]
- /esbuild-darwin-arm64/0.14.49:
- resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==}
- /esbuild-freebsd-64/0.14.49:
- resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==}
- os: [freebsd]
- /esbuild-freebsd-arm64/0.14.49:
- resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==}
- /esbuild-linux-32/0.14.49:
- resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==}
- cpu: [ia32]
- os: [linux]
- /esbuild-linux-64/0.14.49:
- resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==}
- /esbuild-linux-arm/0.14.49:
- resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==}
- cpu: [arm]
- /esbuild-linux-arm64/0.14.49:
- resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==}
- /esbuild-linux-mips64le/0.14.49:
- resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==}
- cpu: [mips64el]
- /esbuild-linux-ppc64le/0.14.49:
- resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==}
- cpu: [ppc64]
- /esbuild-linux-riscv64/0.14.49:
- resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==}
- cpu: [riscv64]
- /esbuild-linux-s390x/0.14.49:
- resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==}
- cpu: [s390x]
- /esbuild-netbsd-64/0.14.49:
- resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==}
- os: [netbsd]
- /esbuild-openbsd-64/0.14.49:
- resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==}
- os: [openbsd]
- /esbuild-sunos-64/0.14.49:
- resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==}
- os: [sunos]
- /esbuild-windows-32/0.14.49:
- resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==}
- os: [win32]
- /esbuild-windows-64/0.14.49:
- resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==}
- /esbuild-windows-arm64/0.14.49:
- resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==}
- /esbuild/0.14.49:
- resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==}
- esbuild-android-64: 0.14.49
- esbuild-android-arm64: 0.14.49
- esbuild-darwin-64: 0.14.49
- esbuild-darwin-arm64: 0.14.49
- esbuild-freebsd-64: 0.14.49
- esbuild-freebsd-arm64: 0.14.49
- esbuild-linux-32: 0.14.49
- esbuild-linux-64: 0.14.49
- esbuild-linux-arm: 0.14.49
- esbuild-linux-arm64: 0.14.49
- esbuild-linux-mips64le: 0.14.49
- esbuild-linux-ppc64le: 0.14.49
- esbuild-linux-riscv64: 0.14.49
- esbuild-linux-s390x: 0.14.49
- esbuild-netbsd-64: 0.14.49
- esbuild-openbsd-64: 0.14.49
- esbuild-sunos-64: 0.14.49
- esbuild-windows-32: 0.14.49
- esbuild-windows-64: 0.14.49
- esbuild-windows-arm64: 0.14.49
- /escalade/3.1.1:
- resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
- /escape-html/1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
- /escape-string-regexp/1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
- /escape-string-regexp/4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- /eslint-config-prettier/8.5.0_eslint@8.20.0:
- resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz}
- eslint: '>=7.0.0'
- /eslint-define-config/1.5.1:
- resolution: {integrity: sha512-6gxrmN7aKGffaO8dCtMMKyo3IxbWymMQ248p4lf8GbaFRcLsqOXHFdUhhM0Hcy1NudvnpwHcfbDf7Nh9pIm1TA==}
- engines: {node: '>= 14.6.0', npm: '>= 6.0.0', pnpm: '>= 7.0.0'}
- /eslint-plugin-prettier/4.2.1_g4fztgbwjyq2fvmcscny2sj6fy:
- resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
- engines: {node: '>=12.0.0'}
- eslint: '>=7.28.0'
- eslint-config-prettier: '*'
- prettier: '>=2.0.0'
- eslint-config-prettier:
- prettier-linter-helpers: 1.0.0
- /eslint-plugin-vue/9.2.0_eslint@8.20.0:
- resolution: {integrity: sha512-W2hc+NUXoce8sZtWgZ45miQTy6jNyuSdub5aZ1IBune4JDeAyzucYX0TzkrQ1jMO52sNUDYlCIHDoaNePe0p5g==}
- engines: {node: ^14.17.0 || >=16.0.0}
- eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
- natural-compare: 1.4.0
- vue-eslint-parser: 9.0.2_eslint@8.20.0
- xml-name-validator: 4.0.0
- /eslint-scope/5.1.1:
- resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
- esrecurse: 4.3.0
- estraverse: 4.3.0
- /eslint-scope/7.1.1:
- resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
- estraverse: 5.3.0
- /eslint-utils/2.1.0:
- resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==}
- eslint-visitor-keys: 1.3.0
- /eslint-utils/3.0.0_eslint@8.20.0:
- resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
- engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
- eslint: '>=5'
- eslint-visitor-keys: 2.1.0
- /eslint-visitor-keys/1.3.0:
- resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}
- /eslint-visitor-keys/2.1.0:
- resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
- /eslint-visitor-keys/3.3.0:
- resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
- /eslint/8.20.0:
- resolution: {integrity: sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==}
- '@eslint/eslintrc': 1.3.0
- '@humanwhocodes/config-array': 0.9.2
- cross-spawn: 7.0.3
- doctrine: 3.0.0
- escape-string-regexp: 4.0.0
- eslint-scope: 7.1.1
- esquery: 1.4.0
- file-entry-cache: 6.0.1
- glob-parent: 6.0.2
- imurmurhash: 0.1.4
- json-stable-stringify-without-jsonify: 1.0.1
- levn: 0.4.1
- lodash.merge: 4.6.2
- optionator: 0.9.1
- text-table: 0.2.0
- v8-compile-cache: 2.3.0
- /espree/6.2.1:
- resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==}
- acorn-jsx: 5.3.2_acorn@7.4.1
- /espree/9.3.2:
- resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==}
- acorn-jsx: 5.3.2_acorn@8.7.1
- /esquery/1.4.0:
- resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
- /esrecurse/4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
- /estraverse/4.3.0:
- resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
- /estraverse/5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- /estree-walker/2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
- /esutils/2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- /etag/1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/etag/-/etag-1.8.1.tgz}
- engines: {node: '>= 0.6'}
- /event-emitter/0.3.5:
- resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
- /execa/4.1.0:
- resolution: {integrity: sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/execa/download/execa-4.1.0.tgz?cache=0&sync_timestamp=1637148795580&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexeca%2Fdownload%2Fexeca-4.1.0.tgz}
- get-stream: 5.2.0
- human-signals: 1.1.1
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
- /execa/5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- get-stream: 6.0.1
- human-signals: 2.1.0
- /execa/6.1.0:
- resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}
- human-signals: 3.0.1
- is-stream: 3.0.0
- npm-run-path: 5.1.0
- onetime: 6.0.0
- strip-final-newline: 3.0.0
- /execall/2.0.0:
- resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==}
- clone-regexp: 2.2.0
- /expand-brackets/2.1.4:
- resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/expand-brackets/-/expand-brackets-2.1.4.tgz}
- posix-character-classes: 0.1.1
- regex-not: 1.0.2
- /expand-tilde/2.0.2:
- resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
- homedir-polyfill: 1.0.3
- /ext/1.6.0:
- resolution: {integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==}
- type: 2.6.0
- /extend-shallow/2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- is-extendable: 0.1.1
- /extend-shallow/3.0.2:
- resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
- assign-symbols: 1.0.0
- is-extendable: 1.0.1
- /extend/3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
- /external-editor/3.1.0:
- resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
- chardet: 0.7.0
- iconv-lite: 0.4.24
- tmp: 0.0.33
- /extglob/2.0.4:
- resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/extglob/-/extglob-2.0.4.tgz}
- expand-brackets: 2.1.4
- fragment-cache: 0.2.1
- /fast-deep-equal/3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- /fast-diff/1.2.0:
- resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
- /fast-glob/3.2.11:
- resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
- engines: {node: '>=8.6.0'}
- '@nodelib/fs.walk': 1.2.8
- merge2: 1.4.1
- /fast-json-stable-stringify/2.1.0:
- resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- /fast-levenshtein/2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- /fastest-levenshtein/1.0.12:
- resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==}
- /fastq/1.13.0:
- resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
- reusify: 1.0.4
- /figures/3.2.0:
- resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
- /file-entry-cache/6.0.1:
- resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
- engines: {node: ^10.12.0 || >=12.0.0}
- flat-cache: 3.0.4
- /filelist/1.0.2:
- resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/filelist/-/filelist-1.0.2.tgz}
- /fill-range/4.0.0:
- resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
- is-number: 3.0.0
- repeat-string: 1.6.1
- to-regex-range: 2.1.1
- /fill-range/7.0.1:
- resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
- to-regex-range: 5.0.1
- /finalhandler/1.1.2:
- resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
- encodeurl: 1.0.2
- on-finished: 2.3.0
- statuses: 1.5.0
- unpipe: 1.0.0
- /find-up/4.1.0:
- resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/find-up/-/find-up-4.1.0.tgz}
- locate-path: 5.0.0
- path-exists: 4.0.0
- /find-up/5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- locate-path: 6.0.0
- /findup-sync/5.0.0:
- resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==}
- engines: {node: '>= 10.13.0'}
- detect-file: 1.0.0
- resolve-dir: 1.0.1
- /fined/2.0.0:
- resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==}
- expand-tilde: 2.0.2
- is-plain-object: 5.0.0
- object.defaults: 1.1.0
- object.pick: 1.3.0
- parse-filepath: 1.0.2
- /flagged-respawn/2.0.0:
- resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==}
- /flat-cache/3.0.4:
- resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
- flatted: 3.2.4
- /flatted/3.2.4:
- resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==}
- /follow-redirects/1.14.9:
- resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==}
- debug: '*'
- debug:
- /for-in/1.0.2:
- resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
- /for-own/1.0.0:
- resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==}
- for-in: 1.0.2
- /form-data/4.0.0:
- resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
- asynckit: 0.4.0
- combined-stream: 1.0.8
- mime-types: 2.1.35
- /fraction.js/4.2.0:
- resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
- /fragment-cache/0.2.1:
- resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/fragment-cache/-/fragment-cache-0.2.1.tgz}
- map-cache: 0.2.2
- /fs-extra/10.0.0:
- resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/fs-extra/-/fs-extra-10.0.0.tgz}
- jsonfile: 6.1.0
- universalify: 2.0.0
- /fs-extra/10.0.1:
- resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==}
- /fs.realpath/1.0.0:
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
- /fsevents/2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- /function-bind/1.1.1:
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
- /functional-red-black-tree/1.0.1:
- resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==}
- /gensync/1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- /get-caller-file/2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
- /get-intrinsic/1.1.1:
- resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
- has: 1.0.3
- has-symbols: 1.0.2
- /get-stdin/8.0.0:
- resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==}
- /get-stream/5.2.0:
- resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
- pump: 3.0.0
- /get-stream/6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- /get-value/2.0.6:
- resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/get-value/-/get-value-2.0.6.tgz}
- /git-raw-commits/2.0.11:
- resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
- dargs: 7.0.0
- /glob-parent/5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- /glob-parent/6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- /glob/7.2.0:
- resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
- fs.realpath: 1.0.0
- inflight: 1.0.6
- path-is-absolute: 1.0.1
- /global-dirs/0.1.1:
- resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
- ini: 1.3.8
- /global-modules/1.0.0:
- resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
- global-prefix: 1.0.2
- is-windows: 1.0.2
- /global-modules/2.0.0:
- resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
- global-prefix: 3.0.0
- /global-prefix/1.0.2:
- resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
- which: 1.3.1
- /global-prefix/3.0.0:
- resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
- kind-of: 6.0.3
- /globals/11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- /globals/13.15.0:
- resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==}
- type-fest: 0.20.2
- /globby/11.1.0:
- resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
- array-union: 2.1.0
- dir-glob: 3.0.1
- /globby/13.1.1:
- resolution: {integrity: sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==}
- slash: 4.0.0
- /globjoin/0.1.4:
- resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
- /graceful-fs/4.2.8:
- resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==}
- /handlebars/4.7.7:
- resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
- engines: {node: '>=0.4.7'}
- minimist: 1.2.6
- neo-async: 2.6.2
- wordwrap: 1.0.0
- uglify-js: 3.15.3
- /hard-rejection/2.1.0:
- resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
- /has-ansi/2.0.0:
- resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/has-ansi/-/has-ansi-2.0.0.tgz}
- ansi-regex: 2.1.1
- /has-flag/1.0.0:
- resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==}
- /has-flag/3.0.0:
- resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
- /has-flag/4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- /has-symbols/1.0.2:
- resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==}
- engines: {node: '>= 0.4'}
- /has-value/0.3.1:
- resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/has-value/-/has-value-0.3.1.tgz}
- has-values: 0.1.4
- isobject: 2.1.0
- /has-value/1.0.0:
- resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/has-value/-/has-value-1.0.0.tgz}
- has-values: 1.0.0
- /has-values/0.1.4:
- resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/has-values/-/has-values-0.1.4.tgz}
- /has-values/1.0.0:
- resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/has-values/-/has-values-1.0.0.tgz}
- kind-of: 4.0.0
- /has/1.0.3:
- resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
- engines: {node: '>= 0.4.0'}
- /he/1.2.0:
- resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/he/-/he-1.2.0.tgz}
- /header-case/2.0.4:
- resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
- /homedir-polyfill/1.0.3:
- resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
- parse-passwd: 1.0.0
- /hosted-git-info/2.8.9:
- resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
- /hosted-git-info/4.0.2:
- resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==}
- lru-cache: 6.0.0
- /html-minifier-terser/6.1.0:
- resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz}
- clean-css: 5.2.4
- commander: 8.3.0
- he: 1.2.0
- relateurl: 0.2.7
- terser: 5.10.0
- /html-tags/3.2.0:
- resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==}
- /html-void-elements/2.0.1:
- resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
- /htmlparser2/3.10.1:
- resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
- domhandler: 2.4.2
- domutils: 1.7.0
- entities: 1.1.2
- /htmlparser2/6.1.0:
- resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
- /htmlparser2/8.0.1:
- resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==}
- domutils: 3.0.1
- /human-signals/1.1.1:
- resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
- engines: {node: '>=8.12.0'}
- /human-signals/2.1.0:
- resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
- engines: {node: '>=10.17.0'}
- /human-signals/3.0.1:
- resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
- engines: {node: '>=12.20.0'}
- /i18next/20.6.1:
- resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
- '@babel/runtime': 7.17.2
- /iconv-lite/0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
- safer-buffer: 2.1.2
- /iconv-lite/0.6.3:
- resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
- /ieee754/1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- /ignore/5.2.0:
- resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
- /image-size/0.5.5:
- resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
- /immer/9.0.12:
- resolution: {integrity: sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==}
- /import-fresh/3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
- parent-module: 1.0.1
- resolve-from: 4.0.0
- /import-lazy/4.0.0:
- resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
- /imurmurhash/0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
- /indent-string/4.0.0:
- resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
- /inflight/1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
- wrappy: 1.0.2
- /inherits/2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- /ini/1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
- /inquirer/8.2.2:
- resolution: {integrity: sha512-pG7I/si6K/0X7p1qU+rfWnpTE1UIkTONN1wxtzh0d+dHXtT/JG6qBgLxoyHVsQa8cFABxAPh0pD6uUUHiAoaow==}
- ansi-escapes: 4.3.2
- cli-cursor: 3.1.0
- cli-width: 3.0.0
- external-editor: 3.1.0
- figures: 3.2.0
- mute-stream: 0.0.8
- ora: 5.4.1
- run-async: 2.4.1
- /interpret/2.2.0:
- resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==}
- /intro.js/6.0.0:
- resolution: {integrity: sha512-ZUiR6BoLSvPSlLG0boewnWVgji1fE1gBvP/pyw5pgCKXEDQz1mMeUxarggClPNs71UTq364LwSk9zxz17A9gaQ==}
- /is-absolute/1.0.0:
- resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
- is-relative: 1.0.0
- /is-accessor-descriptor/0.1.6:
- resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz}
- kind-of: 3.2.2
- /is-accessor-descriptor/1.0.0:
- resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz}
- /is-arrayish/0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- /is-binary-path/2.1.0:
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- binary-extensions: 2.2.0
- /is-buffer/1.1.6:
- resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-buffer/-/is-buffer-1.1.6.tgz}
- /is-core-module/2.8.1:
- resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}
- /is-core-module/2.9.0:
- resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
- /is-data-descriptor/0.1.4:
- resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz}
- /is-data-descriptor/1.0.0:
- resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz}
- /is-descriptor/0.1.6:
- resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-descriptor/-/is-descriptor-0.1.6.tgz}
- is-accessor-descriptor: 0.1.6
- is-data-descriptor: 0.1.4
- kind-of: 5.1.0
- /is-descriptor/1.0.2:
- resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-descriptor/-/is-descriptor-1.0.2.tgz}
- is-accessor-descriptor: 1.0.0
- is-data-descriptor: 1.0.0
- /is-extendable/0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- /is-extendable/1.0.1:
- resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
- is-plain-object: 2.0.4
- /is-extglob/2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- /is-fullwidth-code-point/3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- /is-fullwidth-code-point/4.0.0:
- resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
- /is-glob/4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- is-extglob: 2.1.1
- /is-hotkey/0.2.0:
- resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==}
- /is-interactive/1.0.0:
- resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
- /is-interactive/2.0.0:
- resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
- /is-number/3.0.0:
- resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
- /is-number/7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
- /is-obj/2.0.0:
- resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
- /is-path-cwd/2.2.0:
- resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
- /is-path-inside/3.0.3:
- resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
- /is-plain-obj/1.1.0:
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
- /is-plain-object/2.0.4:
- resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
- /is-plain-object/5.0.0:
- resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
- /is-regexp/2.1.0:
- resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==}
- /is-relative/1.0.0:
- resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
- is-unc-path: 1.0.0
- /is-stream/2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- /is-stream/3.0.0:
- resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
- /is-text-path/1.0.1:
- resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
- text-extensions: 1.9.0
- /is-unc-path/1.0.0:
- resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
- unc-path-regex: 0.1.2
- /is-unicode-supported/0.1.0:
- resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
- /is-unicode-supported/1.2.0:
- resolution: {integrity: sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==}
- /is-url/1.2.4:
- resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
- /is-what/3.14.1:
- resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==}
- /is-windows/1.0.2:
- resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
- /isarray/1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
- /isbinaryfile/4.0.10:
- resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
- /isexe/2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- /isobject/2.1.0:
- resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
- isarray: 1.0.0
- /isobject/3.0.1:
- resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
- /jake/10.8.2:
- resolution: {integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/jake/-/jake-10.8.2.tgz}
- async: 0.9.2
- filelist: 1.0.2
- /jiti/1.14.0:
- resolution: {integrity: sha512-4IwstlaKQc9vCTC+qUXLM1hajy2ImiL9KnLvVYiaHOtS/v3wRjhLlGl121AmgDgx/O43uKmxownJghS5XMya2A==}
- /js-base64/2.6.4:
- resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
- /js-tokens/4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- /js-tokens/8.0.0:
- resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==}
- /js-yaml/4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- argparse: 2.0.1
- /jsesc/2.5.2:
- resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
- /json-parse-even-better-errors/2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- /json-schema-traverse/0.4.1:
- resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- /json-schema-traverse/1.0.0:
- resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
- /json-stable-stringify-without-jsonify/1.0.1:
- resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
- /json5/1.0.1:
- resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}
- /json5/2.2.1:
- resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
- /jsonc-eslint-parser/1.4.1:
- resolution: {integrity: sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==}
- engines: {node: '>=8.10.0'}
- eslint-utils: 2.1.0
- espree: 6.2.1
- /jsonfile/6.1.0:
- resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
- /jsonparse/1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
- /kind-of/3.2.2:
- resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
- is-buffer: 1.1.6
- /kind-of/4.0.0:
- resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
- /kind-of/5.1.0:
- resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
- /kind-of/6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- /known-css-properties/0.25.0:
- resolution: {integrity: sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==}
- /kolorist/1.5.1:
- resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==}
- /less/4.1.3:
- resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==}
- copy-anything: 2.0.3
- parse-node-version: 1.0.1
- errno: 0.1.8
- image-size: 0.5.5
- make-dir: 2.1.0
- mime: 1.6.0
- needle: 3.1.0
- /levn/0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
- prelude-ls: 1.2.1
- type-check: 0.4.0
- /liftoff/4.0.0:
- resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==}
- extend: 3.0.2
- findup-sync: 5.0.0
- fined: 2.0.0
- flagged-respawn: 2.0.0
- object.map: 1.0.1
- rechoir: 0.8.0
- resolve: 1.22.1
- /lilconfig/2.0.5:
- resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==}
- /lines-and-columns/1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
- /lint-staged/13.0.3:
- resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==}
- engines: {node: ^14.13.1 || >=16.0.0}
- cli-truncate: 3.1.0
- colorette: 2.0.17
- commander: 9.3.0
- execa: 6.1.0
- lilconfig: 2.0.5
- listr2: 4.0.5
- object-inspect: 1.12.2
- pidtree: 0.6.0
- string-argv: 0.3.1
- yaml: 2.1.1
- - enquirer
- /listr2/4.0.5:
- resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==}
- enquirer: '>= 2.3.0 < 3'
- enquirer:
- cli-truncate: 2.1.0
- log-update: 4.0.0
- rfdc: 1.3.0
- /loader-utils/1.4.0:
- resolution: {integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/loader-utils/-/loader-utils-1.4.0.tgz}
- engines: {node: '>=4.0.0'}
- big.js: 5.2.2
- emojis-list: 3.0.0
- json5: 1.0.1
- /locate-path/5.0.0:
- resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/locate-path/-/locate-path-5.0.0.tgz}
- p-locate: 4.1.0
- /locate-path/6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- p-locate: 5.0.0
- /lodash-es/4.17.21:
- resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
- /lodash-unified/1.0.2_3ib2ivapxullxkx3xftsimdk7u:
- resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==}
- '@types/lodash-es': '*'
- lodash: '*'
- lodash-es: '*'
- /lodash.camelcase/4.3.0:
- resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
- /lodash.clonedeep/4.5.0:
- resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
- /lodash.debounce/4.0.8:
- resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
- /lodash.foreach/4.5.0:
- resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
- /lodash.get/4.4.2:
- resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
- /lodash.isequal/4.5.0:
- resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
- /lodash.merge/4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
- /lodash.throttle/4.1.1:
- resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
- /lodash.toarray/4.4.0:
- resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==}
- /lodash.truncate/4.4.2:
- resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
- /lodash/4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
- /log-symbols/4.1.0:
- resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
- is-unicode-supported: 0.1.0
- /log-symbols/5.1.0:
- resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==}
- chalk: 5.0.1
- is-unicode-supported: 1.2.0
- /log-update/4.0.0:
- resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}
- slice-ansi: 4.0.0
- /lower-case/2.0.2:
- resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
- /lru-cache/6.0.0:
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
- yallist: 4.0.0
- /magic-string/0.25.7:
- resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==}
- sourcemap-codec: 1.4.8
- /magic-string/0.26.2:
- resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==}
- /make-dir/2.1.0:
- resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
- pify: 4.0.1
- semver: 5.7.1
- /make-error/1.3.6:
- resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
- /make-iterator/1.0.1:
- resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==}
- /map-cache/0.2.2:
- resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
- /map-obj/1.0.1:
- resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
- /map-obj/4.3.0:
- resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
- /map-visit/1.0.0:
- resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/map-visit/-/map-visit-1.0.0.tgz}
- /mathml-tag-names/2.1.3:
- resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
- /mdn-data/2.0.14:
- resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
- /memoize-one/6.0.0:
- resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
- /meow/8.1.2:
- resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
- '@types/minimist': 1.2.2
- camelcase-keys: 6.2.2
- decamelize-keys: 1.1.0
- hard-rejection: 2.1.0
- minimist-options: 4.1.0
- normalize-package-data: 3.0.3
- read-pkg-up: 7.0.1
- redent: 3.0.0
- trim-newlines: 3.0.1
- type-fest: 0.18.1
- yargs-parser: 20.2.9
- /meow/9.0.0:
- resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==}
- /merge-stream/2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
- /merge2/1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- /micromatch/3.1.0:
- resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}
- arr-diff: 4.0.0
- braces: 2.3.2
- extglob: 2.0.4
- nanomatch: 1.2.13
- /micromatch/4.0.5:
- resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
- engines: {node: '>=8.6'}
- /mime-db/1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- /mime-match/1.0.2:
- resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
- wildcard: 1.1.2
- /mime-types/2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- mime-db: 1.52.0
- /mime/1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- /mimic-fn/2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- /mimic-fn/4.0.0:
- resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
- /min-indent/1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- /minimatch/3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
- brace-expansion: 1.1.11
- /minimist-options/4.1.0:
- resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
- arrify: 1.0.1
- is-plain-obj: 1.1.0
- /minimist/1.2.6:
- resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
- /mitt/3.0.0:
- resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/mitt/-/mitt-3.0.0.tgz}
- /mixin-deep/1.3.2:
- resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/mixin-deep/-/mixin-deep-1.3.2.tgz}
- /mkdirp/1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- /mrmime/1.0.0:
- resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==}
- /ms/2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
- /ms/2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- /ms/2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- /multimatch/4.0.0:
- resolution: {integrity: sha1-jDwPbj6ESa2grz3SnvtJGjdRkbM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/multimatch/download/multimatch-4.0.0.tgz}
- '@types/minimatch': 3.0.5
- array-differ: registry.nlark.com/array-differ/3.0.0
- arrify: 2.0.1
- /mute-stream/0.0.8:
- resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
- /namespace-emitter/2.0.1:
- resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
- /nanoid/3.3.4:
- resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- /nanomatch/1.2.13:
- resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/nanomatch/-/nanomatch-1.2.13.tgz}
- define-property: 2.0.2
- extend-shallow: 3.0.2
- /natural-compare/1.4.0:
- resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
- /needle/3.1.0:
- resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==}
- engines: {node: '>= 4.4.x'}
- debug: 3.2.7
- iconv-lite: 0.6.3
- sax: 1.2.4
- /neo-async/2.6.2:
- resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- /next-tick/1.0.0:
- resolution: {integrity: sha512-mc/caHeUcdjnC/boPWJefDr4KUIWQNv+tlnFnJd38QMou86QtxQzBJfxgGRzvx8jazYRqrVlaHarfO72uNxPOg==}
- /no-case/3.0.4:
- resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
- lower-case: 2.0.2
- /node-fetch/2.6.7:
- resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
- engines: {node: 4.x || >=6.0.0}
- encoding: ^0.1.0
- encoding:
- whatwg-url: 5.0.0
- /node-html-parser/5.3.3:
- resolution: {integrity: sha512-ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/node-html-parser/-/node-html-parser-5.3.3.tgz}
- css-select: 4.2.1
- /node-plop/0.31.0:
- resolution: {integrity: sha512-aKLPxiBoFTNUovvtK8j/Whc4PZREkYx6htw2HJPiU8wYquXmN8pkd9B3xlFo6AJ4ZlzFsQSf/NXR5xET8EqRYw==}
- '@types/inquirer': 8.2.1
- change-case: 4.1.2
- del: 6.0.0
- globby: 13.1.1
- handlebars: 4.7.7
- inquirer: 8.2.2
- isbinaryfile: 4.0.10
- lodash.get: 4.4.2
- mkdirp: 1.0.4
- title-case: 3.0.3
- /node-releases/2.0.4:
- resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==}
- /normalize-package-data/2.5.0:
- resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
- hosted-git-info: 2.8.9
- validate-npm-package-license: 3.0.4
- /normalize-package-data/3.0.3:
- resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
- hosted-git-info: 4.0.2
- is-core-module: 2.8.1
- /normalize-path/3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- /normalize-range/0.1.2:
- resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
- /normalize-wheel-es/1.1.2:
- resolution: {integrity: sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==}
- /npm-run-path/4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- /npm-run-path/5.1.0:
- resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
- path-key: 4.0.0
- /nprogress/0.2.0:
- resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz}
- /nth-check/2.0.1:
- resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==}
- /object-assign/4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- /object-copy/0.1.0:
- resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/object-copy/-/object-copy-0.1.0.tgz}
- copy-descriptor: 0.1.1
- /object-inspect/1.12.2:
- resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
- /object-visit/1.0.1:
- resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/object-visit/-/object-visit-1.0.1.tgz}
- /object.defaults/1.1.0:
- resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==}
- array-each: 1.0.1
- array-slice: 1.1.0
- for-own: 1.0.0
- /object.map/1.0.1:
- resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==}
- make-iterator: 1.0.1
- /object.pick/1.3.0:
- resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
- /on-finished/2.3.0:
- resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
- ee-first: 1.1.1
- /once/1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
- /onetime/5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- mimic-fn: 2.1.0
- /onetime/6.0.0:
- resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
- mimic-fn: 4.0.0
- /optionator/0.9.1:
- resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- word-wrap: 1.2.3
- /ora/5.4.1:
- resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
- bl: 4.1.0
- cli-spinners: 2.6.1
- is-interactive: 1.0.0
- log-symbols: 4.1.0
- wcwidth: 1.0.1
- /ora/6.1.0:
- resolution: {integrity: sha512-CxEP6845hLK+NHFWZ+LplGO4zfw4QSfxTlqMfvlJ988GoiUeZDMzCvqsZkFHv69sPICmJH1MDxZoQFOKXerAVw==}
- bl: 5.0.0
- cli-cursor: 4.0.0
- is-interactive: 2.0.0
- log-symbols: 5.1.0
- strip-ansi: 7.0.1
- /os-tmpdir/1.0.2:
- resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
- /p-limit/2.3.0:
- resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
- p-try: 2.2.0
- /p-limit/3.1.0:
- resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
- yocto-queue: 0.1.0
- /p-locate/4.1.0:
- resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
- p-limit: 2.3.0
- /p-locate/5.0.0:
- resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
- p-limit: 3.1.0
- /p-map/4.0.0:
- resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
- aggregate-error: 3.1.0
- /p-try/2.2.0:
- resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/p-try/-/p-try-2.2.0.tgz}
- /param-case/3.0.4:
- resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
- /parent-module/1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- callsites: 3.1.0
- /parse-filepath/1.0.2:
- resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==}
- is-absolute: 1.0.0
- path-root: 0.1.1
- /parse-json/5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- '@babel/code-frame': 7.16.7
- error-ex: 1.3.2
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
- /parse-node-version/1.0.1:
- resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
- /parse-passwd/1.0.0:
- resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
- /parse5-htmlparser2-tree-adapter/6.0.1:
- resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==}
- /parse5/6.0.1:
- resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
- /parseurl/1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- /pascal-case/3.1.2:
- resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
- /pascalcase/0.1.1:
- resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/pascalcase/-/pascalcase-0.1.1.tgz}
- /path-case/3.0.4:
- resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
- /path-exists/4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- /path-is-absolute/1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- /path-key/3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- /path-key/4.0.0:
- resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
- /path-parse/1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- /path-root-regex/0.1.2:
- resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
- /path-root/0.1.1:
- resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}
- path-root-regex: 0.1.2
- /path-type/4.0.0:
- resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
- /pathe/0.2.0:
- resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
- /pathe/0.3.1:
- resolution: {integrity: sha512-cKMVe/pikPpreoODbjoliSk0cIT66JjEOWN30akc9WTo8kUjxFPYqmXvMBVPMSAJGJlx6v/nYzqSSHkp1cfezQ==}
- /picocolors/1.0.0:
- resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
- /picomatch/2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- /pidtree/0.6.0:
- resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
- /pify/4.0.1:
- resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
- /pinia-plugin-persist/1.0.0_pinia@2.0.16+vue@3.2.37:
- resolution: {integrity: sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/pinia-plugin-persist/-/pinia-plugin-persist-1.0.0.tgz}
- '@vue/composition-api': ^1.0.0
- pinia: ^2.0.0
- vue: ^2.0.0 || >=3.0.0
- /pinia/2.0.16_j6bzmzd4ujpabbp5objtwxyjp4:
- resolution: {integrity: sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==}
- '@vue/composition-api': ^1.4.0
- typescript: '>=4.4.4'
- vue: ^2.6.14 || ^3.2.0
- '@vue/devtools-api': 6.1.4
- /plop/3.1.1:
- resolution: {integrity: sha512-NuctKmuNUACXBQn25bBr5oj/75nHxdKGwjA/+b7cVoj1sp+gTVqcc8eAr4QcNJgMPsZWRJBN2kMkgmsqbqV9gg==}
- '@types/liftoff': 4.0.0
- interpret: 2.2.0
- liftoff: 4.0.0
- node-plop: 0.31.0
- ora: 6.1.0
- v8flags: 4.0.0
- /pngjs/5.0.0:
- resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
- /posix-character-classes/0.1.1:
- resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz}
- /postcss-html/1.5.0:
- resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==}
- engines: {node: ^12 || >=14}
- htmlparser2: 8.0.1
- js-tokens: 8.0.0
- postcss-safe-parser: 6.0.0_postcss@8.4.14
- /postcss-less/6.0.0_postcss@8.4.14:
- resolution: {integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/postcss-less/download/postcss-less-6.0.0.tgz}
- postcss: ^8.3.5
- /postcss-media-query-parser/0.2.3:
- resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==}
- /postcss-prefix-selector/1.14.0_postcss@5.2.18:
- resolution: {integrity: sha512-8d5fiBQZWMtGWH/7ewEeo6RnBNyT2kLD5wTIfV2oHYqH4hjiofg/rP5X3SUwnqOINzE4mM/K/UOAiNrIaKzd4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/postcss-prefix-selector/-/postcss-prefix-selector-1.14.0.tgz}
- postcss: 7.x || 8.x
- postcss: 5.2.18
- /postcss-resolve-nested-selector/0.1.1:
- resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==}
- /postcss-safe-parser/6.0.0_postcss@8.4.14:
- resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
- engines: {node: '>=12.0'}
- postcss: ^8.3.3
- /postcss-selector-parser/6.0.10:
- resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
- cssesc: 3.0.0
- util-deprecate: 1.0.2
- /postcss-sorting/7.0.1_postcss@8.4.14:
- resolution: {integrity: sha1-kjtSaEUc8tk+v4g14XplN3VwSaU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/postcss-sorting/download/postcss-sorting-7.0.1.tgz}
- postcss: ^8.3.9
- /postcss-value-parser/4.2.0:
- resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- /postcss/5.2.18:
- resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}
- chalk: 1.1.3
- js-base64: 2.6.4
- source-map: 0.5.7
- supports-color: 3.2.3
- /postcss/8.4.14:
- resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
- source-map-js: 1.0.2
- /posthtml-parser/0.2.1:
- resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz}
- htmlparser2: 3.10.1
- /posthtml-rename-id/1.0.12:
- resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz}
- /posthtml-render/1.4.0:
- resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posthtml-render/-/posthtml-render-1.4.0.tgz}
- /posthtml-svg-mode/1.0.3:
- resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz}
- merge-options: registry.nlark.com/merge-options/1.0.1
- posthtml: 0.9.2
- posthtml-parser: 0.2.1
- posthtml-render: 1.4.0
- /posthtml/0.9.2:
- resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posthtml/-/posthtml-0.9.2.tgz}
- /preact/10.6.5:
- resolution: {integrity: sha512-i+LXM6JiVjQXSt2jG2vZZFapGpCuk1fl8o6ii3G84MA3xgj686FKjs4JFDkmUVhtxyq21+4ay74zqPykz9hU6w==}
- /prelude-ls/1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- /prettier-linter-helpers/1.0.0:
- resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
- fast-diff: 1.2.0
- /prettier/2.7.1:
- resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
- /pretty-quick/3.1.3_prettier@2.7.1:
- resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/pretty-quick/download/pretty-quick-3.1.3.tgz}
- engines: {node: '>=10.13'}
- chalk: 3.0.0
- execa: 4.1.0
- find-up: 4.1.0
- mri: registry.nlark.com/mri/1.2.0
- multimatch: 4.0.0
- /prismjs/1.26.0:
- resolution: {integrity: sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==}
- /prr/1.0.1:
- resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
- /pump/3.0.0:
- resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
- end-of-stream: 1.4.4
- /punycode/2.1.1:
- resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
- /q/1.5.1:
- resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
- engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
- /qrcode/1.5.1:
- resolution: {integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==}
- dijkstrajs: 1.0.2
- encode-utf8: 1.0.3
- pngjs: 5.0.0
- yargs: 15.4.1
- /qs/6.11.0:
- resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
- engines: {node: '>=0.6'}
- side-channel: 1.0.4
- /query-string/4.3.4:
- resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/query-string/-/query-string-4.3.4.tgz}
- strict-uri-encode: 1.1.0
- /queue-microtask/1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- /quick-lru/4.0.1:
- resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
- /read-pkg-up/7.0.1:
- resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
- read-pkg: 5.2.0
- type-fest: 0.8.1
- /read-pkg/5.2.0:
- resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
- '@types/normalize-package-data': 2.4.1
- normalize-package-data: 2.5.0
- type-fest: 0.6.0
- /readable-stream/3.6.0:
- resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
- string_decoder: 1.3.0
- /readdirp/3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- /rechoir/0.8.0:
- resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
- /redent/3.0.0:
- resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
- strip-indent: 3.0.0
- /regenerator-runtime/0.13.9:
- resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
- /regex-not/1.0.2:
- resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/regex-not/-/regex-not-1.0.2.tgz}
- safe-regex: 1.1.0
- /regexpp/3.2.0:
- resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
- /relateurl/0.2.7:
- resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/relateurl/-/relateurl-0.2.7.tgz}
- /repeat-element/1.1.4:
- resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/repeat-element/-/repeat-element-1.1.4.tgz}
- /repeat-string/1.6.1:
- resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/repeat-string/-/repeat-string-1.6.1.tgz}
- /require-directory/2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- /require-from-string/2.0.2:
- resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
- /require-main-filename/2.0.0:
- resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
- /resolve-dir/1.0.1:
- resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
- global-modules: 1.0.0
- /resolve-from/4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- /resolve-from/5.0.0:
- resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
- /resolve-global/1.0.0:
- resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==}
- global-dirs: 0.1.1
- /resolve-url/0.2.1:
- resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/resolve-url/-/resolve-url-0.2.1.tgz}
- deprecated: https://github.com/lydell/resolve-url#deprecated
- /resolve/1.22.1:
- resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
- is-core-module: 2.9.0
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
- /restore-cursor/3.1.0:
- resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
- /restore-cursor/4.0.0:
- resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
- /ret/0.1.15:
- resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/ret/-/ret-0.1.15.tgz}
- /reusify/1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- /rfdc/1.3.0:
- resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
- /rimraf/3.0.2:
- resolution: {integrity: sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz}
- glob: 7.2.0
- /rollup-plugin-purge-icons/0.8.1:
- resolution: {integrity: sha512-7ktMV+gWtXAdOIShE8EtTcnpGhozi5H2hKk1MQVGt+7FmlLkjR+XKu1Nyzjocwd6xJvKube2Lh+SfcJ8FYYySw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.8.1.tgz}
- '@purge-icons/core': 0.8.0
- /rollup/2.77.0:
- resolution: {integrity: sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==}
- engines: {node: '>=10.0.0'}
- /run-async/2.4.1:
- resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
- /run-parallel/1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- queue-microtask: 1.2.3
- /rxjs/7.5.5:
- resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==}
- /safe-buffer/5.1.2:
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
- /safe-buffer/5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- /safe-regex/1.1.0:
- resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/safe-regex/-/safe-regex-1.1.0.tgz}
- ret: 0.1.15
- /safer-buffer/2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- /sax/1.2.4:
- resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
- /scroll-into-view-if-needed/2.2.29:
- resolution: {integrity: sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==}
- compute-scroll-into-view: 1.0.17
- /semver/5.7.1:
- resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
- /semver/6.3.0:
- resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
- /semver/7.3.7:
- resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
- /sentence-case/3.0.4:
- resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
- /set-blocking/2.0.0:
- resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
- /set-value/2.0.1:
- resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/set-value/-/set-value-2.0.1.tgz}
- /shebang-command/2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- shebang-regex: 3.0.0
- /shebang-regex/3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- /side-channel/1.0.4:
- resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
- call-bind: 1.0.2
- /signal-exit/3.0.7:
- resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
- /sirv/1.0.19:
- resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==}
- '@polka/url': 1.0.0-next.21
- mrmime: 1.0.0
- totalist: 1.1.0
- /slash/3.0.0:
- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
- /slash/4.0.0:
- resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
- /slate-history/0.66.0_slate@0.72.8:
- resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==}
- slate: '>=0.65.3'
- /slate/0.72.8:
- resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==}
- immer: 9.0.12
- tiny-warning: 1.0.3
- /slice-ansi/3.0.0:
- resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
- astral-regex: 2.0.0
- is-fullwidth-code-point: 3.0.0
- /slice-ansi/4.0.0:
- resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
- /slice-ansi/5.0.0:
- resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
- ansi-styles: 6.1.0
- is-fullwidth-code-point: 4.0.0
- /snabbdom/3.3.1:
- resolution: {integrity: sha512-FR9u20dCkktPd+qbedqwYNjMXzYhizhqlKTQzYZimLNeCJY0/5qgs0DtLVSmzIEL1bN3Dyb9sQpiHGCxUjyLnQ==}
- engines: {node: '>=8.3.0'}
- /snake-case/3.0.4:
- resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
- /snapdragon-node/2.1.1:
- resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz}
- snapdragon-util: 3.0.1
- /snapdragon-util/3.0.1:
- resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz}
- /snapdragon/0.8.2:
- resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/snapdragon/-/snapdragon-0.8.2.tgz}
- base: 0.11.2
- source-map-resolve: 0.5.3
- use: 3.1.1
- /source-map-js/1.0.2:
- resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
- /source-map-resolve/0.5.3:
- resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz}
- deprecated: See https://github.com/lydell/source-map-resolve#deprecated
- atob: 2.1.2
- decode-uri-component: 0.2.0
- resolve-url: 0.2.1
- source-map-url: 0.4.1
- urix: 0.1.0
- /source-map-support/0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/source-map-support/-/source-map-support-0.5.21.tgz}
- buffer-from: 1.1.2
- /source-map-url/0.4.1:
- resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/source-map-url/-/source-map-url-0.4.1.tgz}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
- /source-map/0.5.7:
- resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
- /source-map/0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- /source-map/0.7.3:
- resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==}
- /sourcemap-codec/1.4.8:
- resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
- /spdx-correct/3.1.1:
- resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
- spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.11
- /spdx-exceptions/2.3.0:
- resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
- /spdx-expression-parse/3.0.1:
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
- spdx-exceptions: 2.3.0
- /spdx-license-ids/3.0.11:
- resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==}
- /split-string/3.1.0:
- resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/split-string/-/split-string-3.1.0.tgz}
- /split2/3.2.2:
- resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
- /ssr-window/3.0.0:
- resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}
- /stable/0.1.8:
- resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/stable/-/stable-0.1.8.tgz}
- /static-extend/0.1.2:
- resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/static-extend/-/static-extend-0.1.2.tgz}
- object-copy: 0.1.0
- /statuses/1.5.0:
- resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
- /strict-uri-encode/1.1.0:
- resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz}
- /string-argv/0.3.1:
- resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==}
- engines: {node: '>=0.6.19'}
- /string-width/4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- emoji-regex: 8.0.0
- /string-width/5.0.1:
- resolution: {integrity: sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==}
- emoji-regex: 9.2.2
- /string_decoder/1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- safe-buffer: 5.2.1
- /strip-ansi/3.0.1:
- resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
- /strip-ansi/6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- ansi-regex: 5.0.1
- /strip-ansi/7.0.1:
- resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
- ansi-regex: 6.0.1
- /strip-final-newline/2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- /strip-final-newline/3.0.0:
- resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
- /strip-indent/3.0.0:
- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
- min-indent: 1.0.1
- /strip-json-comments/3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- /style-search/0.1.0:
- resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
- /stylelint-config-html/1.1.0_5rxrxgs7sjazj2ve56ds3kmipi:
- resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==}
- postcss-html: ^1.0.0
- stylelint: '>=14.0.0'
- /stylelint-config-prettier/9.0.3_stylelint@14.9.1:
- resolution: {integrity: sha1-Dczr7/NZ3MOTySKRhECLCJZNVhw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/stylelint-config-prettier/download/stylelint-config-prettier-9.0.3.tgz}
- stylelint: '>=11.0.0'
- /stylelint-config-recommended/8.0.0_stylelint@14.9.1:
- resolution: {integrity: sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==}
- stylelint: ^14.8.0
- /stylelint-config-standard/26.0.0_stylelint@14.9.1:
- resolution: {integrity: sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==}
- stylelint: ^14.9.0
- /stylelint-order/5.0.0_stylelint@14.9.1:
- resolution: {integrity: sha1-q9IPa4WsZAd0y+QOcNP+nG/fRAA=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/stylelint-order/download/stylelint-order-5.0.0.tgz}
- stylelint: ^14.0.0
- postcss-sorting: 7.0.1_postcss@8.4.14
- /stylelint/14.9.1:
- resolution: {integrity: sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==}
- '@csstools/selector-specificity': 2.0.1_444rcjjorr3kpoqtvoodsr46pu
- balanced-match: 2.0.0
- colord: 2.9.2
- css-functions-list: 3.1.0
- execall: 2.0.0
- fastest-levenshtein: 1.0.12
- get-stdin: 8.0.0
- global-modules: 2.0.0
- globjoin: 0.1.4
- import-lazy: 4.0.0
- known-css-properties: 0.25.0
- mathml-tag-names: 2.1.3
- meow: 9.0.0
- postcss-media-query-parser: 0.2.3
- postcss-resolve-nested-selector: 0.1.1
- style-search: 0.1.0
- supports-hyperlinks: 2.2.0
- table: 6.8.0
- write-file-atomic: 4.0.1
- /supports-color/2.0.0:
- resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
- /supports-color/3.2.3:
- resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==}
- has-flag: 1.0.0
- /supports-color/5.5.0:
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
- has-flag: 3.0.0
- /supports-color/7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- has-flag: 4.0.0
- /supports-hyperlinks/2.2.0:
- resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==}
- /supports-preserve-symlinks-flag/1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- /svg-tags/1.0.0:
- resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
- /svgo/2.8.0:
- resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/svgo/-/svgo-2.8.0.tgz}
- '@trysound/sax': 0.2.0
- commander: 7.2.0
- csso: 4.2.0
- stable: 0.1.8
- /table/6.8.0:
- resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==}
- lodash.truncate: 4.4.2
- /terser/5.10.0:
- resolution: {integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/terser/-/terser-5.10.0.tgz}
- acorn:
- commander: 2.20.3
- source-map: 0.7.3
- source-map-support: 0.5.21
- /text-extensions/1.9.0:
- resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
- /text-table/0.2.0:
- resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
- /through/2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- /through2/4.0.2:
- resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
- /tiny-warning/1.0.3:
- resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
- /title-case/3.0.3:
- resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}
- /tmp/0.0.33:
- resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
- engines: {node: '>=0.6.0'}
- os-tmpdir: 1.0.2
- /to-fast-properties/2.0.0:
- resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
- /to-object-path/0.3.0:
- resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/to-object-path/-/to-object-path-0.3.0.tgz}
- /to-regex-range/2.1.1:
- resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
- /to-regex-range/5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
- is-number: 7.0.0
- /to-regex/3.0.2:
- resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/to-regex/-/to-regex-3.0.2.tgz}
- /totalist/1.1.0:
- resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==}
- /tr46/0.0.3:
- resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tr46/-/tr46-0.0.3.tgz}
- /traverse/0.6.6:
- resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/traverse/-/traverse-0.6.6.tgz}
- /trim-newlines/3.0.1:
- resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
- /ts-node/10.7.0_tdn3ypgnfy6bmey2q4hu5jonwi:
- resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}
- '@swc/core': '>=1.2.50'
- '@swc/wasm': '>=1.2.50'
- typescript: '>=2.7'
- '@swc/core':
- '@swc/wasm':
- '@cspotcode/source-map-support': 0.7.0
- '@tsconfig/node10': 1.0.8
- '@tsconfig/node12': 1.0.9
- '@tsconfig/node14': 1.0.1
- '@tsconfig/node16': 1.0.2
- acorn-walk: 8.2.0
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- /tslib/1.14.1:
- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
- /tslib/2.3.0:
- resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
- /tslib/2.3.1:
- resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
- /tsutils/3.21.0_typescript@4.7.4:
- resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
- typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
- tslib: 1.14.1
- /type-check/0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- /type-fest/0.18.1:
- resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
- /type-fest/0.20.2:
- resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
- /type-fest/0.21.3:
- resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
- /type-fest/0.6.0:
- resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
- /type-fest/0.8.1:
- resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
- /type/1.2.0:
- resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
- /type/2.6.0:
- resolution: {integrity: sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==}
- /typescript/4.7.4:
- resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
- engines: {node: '>=4.2.0'}
- /uglify-js/3.15.3:
- resolution: {integrity: sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==}
- /unc-path-regex/0.1.2:
- resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==}
- /union-value/1.0.1:
- resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/union-value/-/union-value-1.0.1.tgz}
- /universalify/2.0.0:
- resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
- engines: {node: '>= 10.0.0'}
- /unpipe/1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- /unplugin-vue-define-options/0.6.2_r5lvqzud3cqtmwu636rwgh22ui:
- resolution: {integrity: sha512-0YAbugPnN57ZkUM0fygfp43Vm321vOUYy2s81O09SfCM08mSul4vMxOZxLj9VSa3NVPF/IN0FmGyTMB5exOdyQ==}
- engines: {node: '>=14.19.0'}
- unplugin: 0.7.1_rollup@2.77.0+vite@3.0.1
- - esbuild
- - rollup
- - vite
- - webpack
- /unplugin/0.7.1_rollup@2.77.0+vite@3.0.1:
- resolution: {integrity: sha512-Z6hNDXDNh9aimMkPU1mEjtk+2ova8gh0y7rJeJdGH1vWZOHwF2lLQiQ/R97rv9ymmzEQXsR2fyMet72T8jy6ew==}
- esbuild: '>=0.13'
- rollup: ^2.50.0
- vite: ^2.3.0 || ^3.0.0-0
- webpack: 4 || 5
- esbuild:
- rollup:
- webpack:
- chokidar: 3.5.3
- webpack-sources: 3.2.3
- webpack-virtual-modules: 0.4.4
- /unset-value/1.0.0:
- resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/unset-value/-/unset-value-1.0.0.tgz}
- has-value: 0.3.1
- /upper-case-first/2.0.2:
- resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
- /upper-case/2.0.2:
- resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
- /uri-js/4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- punycode: 2.1.1
- /urix/0.1.0:
- resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/urix/-/urix-0.1.0.tgz}
- deprecated: Please see https://github.com/lydell/urix#deprecated
- /use/3.1.1:
- resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/use/-/use-3.1.1.tgz}
- /util-deprecate/1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- /utils-merge/1.0.1:
- resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
- /v8-compile-cache-lib/3.0.1:
- resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
- /v8-compile-cache/2.3.0:
- resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
- /v8flags/4.0.0:
- resolution: {integrity: sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==}
- /validate-npm-package-license/3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
- spdx-correct: 3.1.1
- /vary/1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vary/-/vary-1.1.2.tgz}
- /vite-plugin-eslint/1.6.1_eslint@8.20.0+vite@3.0.1:
- resolution: {integrity: sha512-wXwGJ222zjlllHmmPXX6oSU8DbmYjnA6HHBYbOLT8WAc73j4/YAtBQHCVSoHOTPiT4TPzsuZSvputWwc86BweQ==}
- eslint: '>=7'
- vite: ^2.0.0
- '@types/eslint': 8.4.2
- /vite-plugin-html/3.2.0_vite@3.0.1:
- resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vite-plugin-html/-/vite-plugin-html-3.2.0.tgz}
- vite: '>=2.0.0'
- '@rollup/pluginutils': 4.2.0
- colorette: 2.0.16
- connect-history-api-fallback: 1.6.0
- consola: 2.15.3
- dotenv: 16.0.0
- dotenv-expand: 8.0.2
- ejs: 3.1.6
- html-minifier-terser: 6.1.0
- node-html-parser: 5.3.3
- pathe: 0.2.0
- /vite-plugin-purge-icons/0.8.1_vite@3.0.1:
- resolution: {integrity: sha512-H77YDvECkdzwsgYTu6LR5Nx0wey5Hporw+3/hTYTZh7D7YcarS+RsOvpUEgd2XG5fChgCmMBtMfnr2JmrNanSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vite-plugin-purge-icons/-/vite-plugin-purge-icons-0.8.1.tgz}
- vite: ^2.0.0-beta.3
- rollup-plugin-purge-icons: 0.8.1
- /vite-plugin-style-import/1.4.1_vite@3.0.1:
- resolution: {integrity: sha512-lJCRvm7+So0hHdnSJiJPg9gD5mxtL6YY0jmhEph+k7ArpsyvqOh6han2kG5htbWWDZxHkUN9d1BuTFL//yCLLQ==}
- es-module-lexer: 0.9.3
- /vite-plugin-svg-icons/2.0.1_vite@3.0.1:
- resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz}
- '@types/svgo': 2.6.1
- cors: 2.8.5
- debug: 4.3.3
- etag: 1.8.1
- fs-extra: 10.0.0
- svg-baker: registry.nlark.com/svg-baker/1.7.0
- svgo: 2.8.0
- /vite-plugin-windicss/1.8.7_vite@3.0.1:
- resolution: {integrity: sha512-/zwQ8+RV+MSkbG0IGqsEma6r2R01NzN/aNpNjJD7VVAkxAptNznqDXOObFTskkWfZ+9m6KJZCOuCPgAFtQIzEA==}
- vite: ^2.0.1 || ^3.0.0
- '@windicss/plugin-utils': 1.8.7
- kolorist: 1.5.1
- /vite/3.0.1_less@4.1.3:
- resolution: {integrity: sha512-nefKSglkoEsDpYUkBuT2++L04ktcP8fz8dxLtmZdDdMyhubFSOLFw6BTh/46Fc6tIX/cibs/NVYWNrsqn0k6pQ==}
- less: '*'
- sass: '*'
- stylus: '*'
- terser: ^5.4.0
- less:
- sass:
- stylus:
- terser:
- esbuild: 0.14.49
- /vue-cropper/1.0.3:
- resolution: {integrity: sha512-yDrZkE4H5vOiMA9WQHE+6rmXrZ1S9TMZasEPAZPKg/2I/nySHL4ECD1lNxt7+ofTPKT+9+2sQkCwagPqEqiqJg==}
- /vue-demi/0.12.1_vue@3.2.37:
- resolution: {integrity: sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==}
- '@vue/composition-api': ^1.0.0-rc.1
- vue: ^3.0.0-0 || ^2.6.0
- /vue-eslint-parser/9.0.2_eslint@8.20.0:
- resolution: {integrity: sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA==}
- eslint: '>=6.0.0'
- /vue-i18n/9.1.10_vue@3.2.37:
- resolution: {integrity: sha512-jpr7gV5KPk4n+sSPdpZT8Qx3XzTcNDWffRlHV/cT2NUyEf+sEgTTmLvnBAibjOFJ0zsUyZlVTAWH5DDnYep+1g==}
- '@intlify/core-base': 9.1.10
- /vue-router/4.1.2_vue@3.2.37:
- resolution: {integrity: sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==}
- /vue-tsc/0.38.8_typescript@4.7.4:
- resolution: {integrity: sha512-hhyc5SODiekcYNXG08aNg17LogR19o3i14avVejo+Fm45Dqk9Ke6rb0M19HoTKdQGfZBgqg2VUboYxmtAukWeg==}
- '@volar/vue-typescript': 0.38.8
- /vue-types/4.1.1_vue@3.2.37:
- resolution: {integrity: sha1-fXpOSgEkmlG22j+qMBJIwupfW5c=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vue-types/download/vue-types-4.1.1.tgz}
- engines: {node: '>=12.16.0'}
- vue: ^2.0.0 || ^3.0.0
- is-plain-object: registry.nlark.com/is-plain-object/5.0.0
- /vue/3.2.37:
- resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==}
- '@vue/runtime-dom': 3.2.37
- '@vue/server-renderer': 3.2.37_vue@3.2.37
- /wcwidth/1.0.1:
- resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
- defaults: 1.0.3
- /web-storage-cache/1.1.1:
- resolution: {integrity: sha1-QqwH536oYOiEiVvpupmrHgTrFi4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/web-storage-cache/download/web-storage-cache-1.1.1.tgz}
- /webidl-conversions/3.0.1:
- resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz}
- /webpack-sources/3.2.3:
- resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
- /webpack-virtual-modules/0.4.4:
- resolution: {integrity: sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==}
- /whatwg-url/5.0.0:
- resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/whatwg-url/-/whatwg-url-5.0.0.tgz}
- tr46: 0.0.3
- webidl-conversions: 3.0.1
- /which-module/2.0.0:
- resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==}
- /which/1.3.1:
- resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
- isexe: 2.0.0
- /which/2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- /wildcard/1.1.2:
- resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
- /windicss-analysis/0.3.5:
- resolution: {integrity: sha512-g7306c47Yc9c0nAhVLwVDVYt+MQmxGfpg1Q06mP4+j5nqCrJgh18Km4HyL8BABv7wo6BdUN7FeVtxb+u5TokxA==}
- '@windicss/plugin-utils': 1.8.4
- cac: 6.7.12
- connect: 3.7.0
- declass: 0.0.1
- sirv: 1.0.19
- /windicss/3.5.6:
- resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==}
- /word-wrap/1.2.3:
- resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
- /wordwrap/1.0.0:
- resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
- /wrap-ansi/6.2.0:
- resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
- /wrap-ansi/7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- /wrappy/1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- /write-file-atomic/4.0.1:
- resolution: {integrity: sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16}
- /xml-name-validator/4.0.0:
- resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
- /y18n/4.0.3:
- resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
- /y18n/5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- /yallist/4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
- /yaml-eslint-parser/0.3.2:
- resolution: {integrity: sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg==}
- /yaml/1.10.2:
- resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
- /yaml/2.1.1:
- resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==}
- /yargs-parser/18.1.3:
- resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
- /yargs-parser/20.2.9:
- resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
- /yargs-parser/21.0.0:
- resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==}
- /yargs/15.4.1:
- resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
- cliui: 6.0.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- require-main-filename: 2.0.0
- set-blocking: 2.0.0
- which-module: 2.0.0
- y18n: 4.0.3
- yargs-parser: 18.1.3
- /yargs/17.3.1:
- resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==}
- cliui: 7.0.4
- y18n: 5.0.8
- yargs-parser: 21.0.0
- /yn/3.1.1:
- resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
- /yocto-queue/0.1.0:
- resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
- /zrender/5.3.2:
- resolution: {integrity: sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==}
- registry.nlark.com/array-differ/3.0.0:
- resolution: {integrity: sha1-PLs9DzFoEOr8xHYkc0I31q7krms=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/array-differ/download/array-differ-3.0.0.tgz}
- name: array-differ
- version: 3.0.0
- registry.nlark.com/is-plain-object/5.0.0:
- resolution: {integrity: sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-plain-object/download/is-plain-object-5.0.0.tgz}
- name: is-plain-object
- version: 5.0.0
- registry.nlark.com/lodash-es/4.17.21:
- resolution: {integrity: sha1-Q+YmxG5lkbd1C+srUBFzkMYJ4+4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash-es/download/lodash-es-4.17.21.tgz}
- name: lodash-es
- version: 4.17.21
- registry.nlark.com/merge-options/1.0.1:
- resolution: {integrity: sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/merge-options/download/merge-options-1.0.1.tgz?cache=0&sync_timestamp=1631523200726&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmerge-options%2Fdownload%2Fmerge-options-1.0.1.tgz}
- name: merge-options
- version: 1.0.1
- registry.nlark.com/mri/1.2.0:
- resolution: {integrity: sha1-ZyFID+wqEaSImGERWki2y+fMjws=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mri/download/mri-1.2.0.tgz}
- name: mri
- version: 1.2.0
- registry.nlark.com/svg-baker/1.7.0:
- resolution: {integrity: sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/svg-baker/download/svg-baker-1.7.0.tgz}
- name: svg-baker
- version: 1.7.0
- bluebird: 3.7.2
- clone: 2.1.2
- loader-utils: 1.4.0
- micromatch: 3.1.0
- postcss-prefix-selector: 1.14.0_postcss@5.2.18
- posthtml-rename-id: 1.0.12
- posthtml-svg-mode: 1.0.3
- query-string: 4.3.4
- traverse: 0.6.6
@@ -1,12 +1,13 @@
-import { defHttp } from '@/config/axios'
-import { ApiAccessLogVO } from './types'
+import { useAxios } from '@/hooks/web/useAxios'
+const request = useAxios()
// 查询列表API 访问日志
-export const getApiAccessLogPageApi = ({ params }) => {
- return defHttp.get<PageResult<ApiAccessLogVO>>({ url: '/infra/api-access-log/page', params })
+export const getApiAccessLogPageApi = (params) => {
+ return request.get({ url: '/infra/api-access-log/page', params })
}
// 导出API 访问日志
export const exportApiAccessLogApi = (params) => {
- return defHttp.get({ url: '/infra/api-access-log/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/infra/api-access-log/export-excel', params, responseType: 'blob' })
@@ -1,19 +1,20 @@
-import { ApiErrorLogVO } from './types'
-export const getApiErrorLogPageApi = ({ params }) => {
- return defHttp.get<PageResult<ApiErrorLogVO>>({ url: '/infra/api-error-log/page', params })
+export const getApiErrorLogPageApi = (params) => {
+ return request.get({ url: '/infra/api-error-log/page', params })
// 更新 API 错误日志的处理状态
export const updateApiErrorLogPageApi = (id: number, processStatus: number) => {
- return defHttp.put({
+ return request.put({
url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus
})
-export const exportApiErrorLogApi = ({ params }) => {
- return defHttp.get({ url: '/infra/api-error-log/export-excel', params, responseType: 'blob' })
+export const exportApiErrorLogApi = (params) => {
+ return request.get({ url: '/infra/api-error-log/export-excel', params, responseType: 'blob' })
@@ -1,62 +1,59 @@
-import type { CodegenDetailVO, CodegenPreviewVO, CodegenTableVO, DatabaseTableVO } from './types'
+import type { CodegenTableVO } from './types'
// 查询列表代码生成表定义
-export const getCodegenTablePageApi = ({ params }) => {
- return defHttp.get<PageResult<CodegenTableVO>>({ url: '/infra/codegen/table/page', params })
+export const getCodegenTablePageApi = (params) => {
+ return request.get({ url: '/infra/codegen/table/page', params })
// 查询详情代码生成表定义
export const getCodegenTableApi = (id: number) => {
- return defHttp.get<CodegenDetailVO>({ url: '/infra/codegen/detail?tableId=' + id })
+ return request.get({ url: '/infra/codegen/detail?tableId=' + id })
// 新增代码生成表定义
-export const createCodegenTableApi = (params: CodegenTableVO) => {
- return defHttp.post({ url: '/infra/codegen/create', params })
+export const createCodegenTableApi = (data: CodegenTableVO) => {
+ return request.post({ url: '/infra/codegen/create', data })
// 修改代码生成表定义
-export const updateCodegenTableApi = (params: CodegenTableVO) => {
- return defHttp.put({ url: '/infra/codegen/update', params })
+export const updateCodegenTableApi = (data: CodegenTableVO) => {
+ return request.put({ url: '/infra/codegen/update', data })
// 基于数据库的表结构,同步数据库的表和字段定义
export const syncCodegenFromDBApi = (id: number) => {
- return defHttp.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
+ return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
// 基于 SQL 建表语句,同步数据库的表和字段定义
export const syncCodegenFromSQLApi = (id: number, sql: string) => {
- url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql,
- headers: {
- 'Content-type': 'application/x-www-form-urlencoded'
- }
- })
+ return request.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql })
// 预览生成代码
export const previewCodegenApi = (id: number) => {
- return defHttp.get<CodegenPreviewVO[]>({ url: '/infra/codegen/preview?tableId=' + id })
+ return request.get({ url: '/infra/codegen/preview?tableId=' + id })
// 下载生成代码
export const downloadCodegenApi = (id: number) => {
- return defHttp.get({ url: '/infra/codegen/download?tableId=' + id, responseType: 'blob' })
+ return request.get({ url: '/infra/codegen/download?tableId=' + id, responseType: 'blob' })
// 获得表定义
export const getSchemaTableListApi = (params) => {
- return defHttp.get<DatabaseTableVO[]>({ url: '/infra/codegen/db/table/list', params })
+ return request.get({ url: '/infra/codegen/db/table/list', params })
// 基于数据库的表结构,创建代码生成器的表定义
-export const createCodegenListApi = (params) => {
- return defHttp.post({ url: '/infra/codegen/create-list', params })
+export const createCodegenListApi = (data) => {
+ return request.post({ url: '/infra/codegen/create-list', data })
// 删除代码生成表定义
export const deleteCodegenTableApi = (id: number) => {
- return defHttp.delete({ url: '/infra/codegen/delete?tableId=' + id })
+ return request.delete({ url: '/infra/codegen/delete?tableId=' + id })
@@ -1,37 +1,39 @@
import type { ConfigVO } from './types'
// 查询参数列表
-export const getConfigPageApi = ({ params }) => {
- return defHttp.get<PageResult<ConfigVO>>({ url: '/infra/config/page', params })
+export const getConfigPageApi = (params) => {
+ return request.get({ url: '/infra/config/page', params })
// 查询参数详情
export const getConfigApi = (id: number) => {
- return defHttp.get<ConfigVO>({ url: '/infra/config/get?id=' + id })
+ return request.get({ url: '/infra/config/get?id=' + id })
// 根据参数键名查询参数值
export const getConfigKeyApi = (configKey: string) => {
- return defHttp.get<ConfigVO>({ url: '/infra/config/get-value-by-key?key=' + configKey })
+ return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey })
// 新增参数
-export const createConfigApi = (params: ConfigVO) => {
- return defHttp.post({ url: '/infra/config/create', params })
+export const createConfigApi = (data: ConfigVO) => {
+ return request.post({ url: '/infra/config/create', data })
// 修改参数
-export const updateConfigApi = (params: ConfigVO) => {
- return defHttp.put({ url: '/infra/config/update', params })
+export const updateConfigApi = (data: ConfigVO) => {
+ return request.put({ url: '/infra/config/update', data })
// 删除参数
export const deleteConfigApi = (id: number) => {
- return defHttp.delete({ url: '/infra/config/delete?id=' + id })
+ return request.delete({ url: '/infra/config/delete?id=' + id })
// 导出参数
-export const exportConfigApi = ({ params }) => {
- return defHttp.get({ url: '/infra/config/export', params, responseType: 'blob' })
+export const exportConfigApi = (params) => {
+ return request.get({ url: '/infra/config/export', params, responseType: 'blob' })
@@ -1,27 +1,29 @@
import type { DataSourceConfigVO } from './types'
// 查询数据源配置列表
export const getDataSourceConfigListApi = () => {
- return defHttp.get<DataSourceConfigVO[]>({ url: '/infra/data-source-config/list' })
+ return request.get({ url: '/infra/data-source-config/list' })
// 查询数据源配置详情
export const getDataSourceConfigApi = (id: number) => {
- return defHttp.get<DataSourceConfigVO>({ url: '/infra/data-source-config/get?id=' + id })
+ return request.get({ url: '/infra/data-source-config/get?id=' + id })
// 新增数据源配置
-export const createDataSourceConfigApi = (params: DataSourceConfigVO) => {
- return defHttp.post({ url: '/infra/data-source-config/create', params })
+export const createDataSourceConfigApi = (data: DataSourceConfigVO) => {
+ return request.post({ url: '/infra/data-source-config/create', data })
// 修改数据源配置
-export const updateDataSourceConfigApi = (params: DataSourceConfigVO) => {
- return defHttp.put({ url: '/infra/data-source-config/update', params })
+export const updateDataSourceConfigApi = (data: DataSourceConfigVO) => {
+ return request.put({ url: '/infra/data-source-config/update', data })
// 删除数据源配置
export const deleteDataSourceConfigApi = (id: number) => {
- return defHttp.delete({ url: '/infra/data-source-config/delete?id=' + id })
+ return request.delete({ url: '/infra/data-source-config/delete?id=' + id })
@@ -1,16 +1,18 @@
// 导出Html
export const exportHtmlApi = () => {
- return defHttp.get({ url: '/infra/db-doc/export-html', responseType: 'blob' })
+ return request.get({ url: '/infra/db-doc/export-html', responseType: 'blob' })
// 导出Word
export const exportWordApi = () => {
- return defHttp.get({ url: '/infra/db-doc/export-word', responseType: 'blob' })
+ return request.get({ url: '/infra/db-doc/export-word', responseType: 'blob' })
// 导出Markdown
export const exportMarkdownApi = () => {
- return defHttp.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' })
+ return request.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' })
-import type { FileVO } from './types'
// 查询文件列表
-export const getFilePageApi = ({ params }) => {
- return defHttp.get<PageResult<FileVO>>({ url: '/infra/file/page', params })
+export const getFilePageApi = (params) => {
+ return request.get({ url: '/infra/file/page', params })
// 删除文件
export const deleteFileApi = (id: number) => {
- return defHttp.delete({ url: '/infra/file/delete?id=' + id })
+ return request.delete({ url: '/infra/file/delete?id=' + id })
import type { FileConfigVO } from './types'
// 查询文件配置列表
-export const getFileConfigPageApi = ({ params }) => {
- return defHttp.get<PageResult<FileConfigVO>>({ url: '/infra/file-config/page', params })
+export const getFileConfigPageApi = (params) => {
+ return request.get({ url: '/infra/file-config/page', params })
// 查询文件配置详情
export const getFileConfigApi = (id: number) => {
- return defHttp.get<FileConfigVO>({ url: '/infra/file-config/get?id=' + id })
+ return request.get({ url: '/infra/file-config/get?id=' + id })
// 更新文件配置为主配置
export const updateFileConfigMasterApi = (id: number) => {
- return defHttp.get<FileConfigVO>({ url: '/infra/file-config/update-master?id=' + id })
+ return request.get({ url: '/infra/file-config/update-master?id=' + id })
// 新增文件配置
-export const createFileConfigApi = (params: FileConfigVO) => {
- return defHttp.post({ url: '/infra/file-config/create', params })
+export const createFileConfigApi = (data: FileConfigVO) => {
+ return request.post({ url: '/infra/file-config/create', data })
// 修改文件配置
-export const updateFileConfigApi = (params: FileConfigVO) => {
- return defHttp.put({ url: '/infra/file-config/update', params })
+export const updateFileConfigApi = (data: FileConfigVO) => {
+ return request.put({ url: '/infra/file-config/update', data })
// 删除文件配置
export const deleteFileConfigApi = (id: number) => {
- return defHttp.delete({ url: '/infra/file-config/delete?id=' + id })
+ return request.delete({ url: '/infra/file-config/delete?id=' + id })
// 测试文件配置
export const testFileConfigApi = (id: number) => {
- return defHttp.get({ url: '/infra/file-config/test?id=' + id })
+ return request.get({ url: '/infra/file-config/test?id=' + id })
@@ -1,38 +1,36 @@
import type { JobVO } from './types'
// 任务列表
-export const getJobPageApi = ({ params }) => {
- return defHttp.get<PageResult<JobVO>>({ url: '/infra/job/page', params })
+export const getJobPageApi = (params) => {
+ return request.get({ url: '/infra/job/page', params })
// 任务详情
export const getJobApi = (id: number) => {
- return defHttp.get<JobVO>({ url: '/infra/job/get?id=' + id })
+ return request.get({ url: '/infra/job/get?id=' + id })
// 新增任务
-export const createJobApi = (params: JobVO) => {
- return defHttp.post({ url: '/infra/job/create', params })
+export const createJobApi = (data: JobVO) => {
+ return request.post({ url: '/infra/job/create', data })
// 修改定时任务调度
export const updateJobApi = (params: JobVO) => {
- return defHttp.put({ url: '/infra/job/update', params })
+ return request.put({ url: '/infra/job/update', params })
// 删除定时任务调度
export const deleteJobApi = (id: number) => {
- return defHttp.delete({ url: '/infra/job/delete?id=' + id })
+ return request.delete({ url: '/infra/job/delete?id=' + id })
// 导出定时任务调度
export const exportJobApi = (params) => {
- return defHttp.get({
- url: '/infra/job/export-excel',
- params,
- responseType: 'blob'
+ return request.get({ url: '/infra/job/export-excel', params, responseType: 'blob' })
// 任务状态修改
@@ -41,15 +39,15 @@ export const updateJobStatusApi = (id: number, status: number) => {
id,
status
- return defHttp.put({ url: '/infra/job/update-status', data: data })
+ return request.put({ url: '/infra/job/update-status', data: data })
// 定时任务立即执行一次
export const runJobApi = (id: number) => {
- return defHttp.put({ url: '/infra/job/trigger?id=' + id })
+ return request.put({ url: '/infra/job/trigger?id=' + id })
// 获得定时任务的下 n 次执行时间
export const getJobNextTimesApi = (id: number) => {
- return defHttp.get({ url: '/infra/job/get_next_times?id=' + id })
+ return request.get({ url: '/infra/job/get_next_times?id=' + id })
-import type { JobLogVO } from './types'
// 任务日志列表
-export const getJobLogPageApi = ({ params }) => {
- return defHttp.get<PageResult<JobLogVO>>({ url: '/infra/job-log/page', params })
+export const getJobLogPageApi = (params) => {
+ return request.get({ url: '/infra/job-log/page', params })
// 任务日志详情
export const getJobLogApi = (id: number) => {
- return defHttp.get<JobLogVO>({ url: '/infra/job-log/get?id=' + id })
+ return request.get({ url: '/infra/job-log/get?id=' + id })
// 导出定时任务日志
export const exportJobLogApi = (params) => {
+ return request.get({
url: '/infra/job-log/export-excel',
params,
responseType: 'blob'
@@ -1,16 +1,25 @@
-import { RedisKeyInfo, RedisMonitorInfoVO } from '@/api/infra/redis/types'
/**
* 获取redis 监控信息
*/
-export const redisMonitorInfo = () => {
- return defHttp.get<RedisMonitorInfoVO>({ url: '/infra/redis/get-monitor-info' })
+export const getCacheApi = () => {
+ return request.get({ url: '/infra/redis/get-monitor-info' })
+}
+// 获取模块
+export const getKeyDefineListApi = () => {
+ return request.get({ url: '/infra/redis/get-key-define-list' })
* 获取redis key列表
-export const redisKeysInfo = () => {
- return defHttp.get<RedisKeyInfo[]>({ url: '/infra/redis/get-key-list' })
+export const getKeyListApi = (keyTemplate: string) => {
+ url: '/infra/redis/get-key-list',
+ params: {
+ keyTemplate
+ }
+ })
@@ -1,6 +1,8 @@
import { getRefreshToken } from '@/utils/auth'
-import type { UserLoginVO, TokenType, UserInfoVO } from './types'
+import type { UserLoginVO } from './types'
export interface CodeImgResult {
captchaOnOff: boolean
@@ -18,45 +20,45 @@ export interface SmsLoginVO {
// 获取验证码
export const getCodeImgApi = () => {
- return defHttp.get<CodeImgResult>({ url: '/system/captcha/get-image' })
+ return request.get({ url: '/system/captcha/get-image' })
// 登录
-export const loginApi = (params: UserLoginVO) => {
- return defHttp.post<TokenType>({ url: '/system/auth/login', params })
+export const loginApi = (data: UserLoginVO) => {
+ return request.post({ url: '/system/auth/login', data })
// 刷新访问令牌
export const refreshToken = () => {
- return defHttp.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() })
+ return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() })
// 使用租户名,获得租户编号
export const getTenantIdByNameApi = (name: string) => {
- return defHttp.get({ url: '/system/tenant/get-id-by-name?name=' + name })
+ return request.get({ url: '/system/tenant/get-id-by-name?name=' + name })
// 登出
export const loginOutApi = () => {
- return defHttp.delete({ url: '/system/auth/logout' })
+ return request.delete({ url: '/system/auth/logout' })
// 获取用户权限信息
export const getInfoApi = () => {
- return defHttp.get<UserInfoVO>({ url: '/system/auth/get-permission-info' })
+ return request.get({ url: '/system/auth/get-permission-info' })
// 路由
export const getAsyncRoutesApi = () => {
- return defHttp.get({ url: '/system/auth/list-menus' })
+ return request.get({ url: '/system/auth/list-menus' })
//获取登录验证码
-export const sendSmsCodeApi = (params: SmsCodeVO) => {
- return defHttp.post({ url: '/system/auth/send-sms-code', params })
+export const sendSmsCodeApi = (data: SmsCodeVO) => {
+ return request.post({ url: '/system/auth/send-sms-code', data })
// 短信验证码登录
-export const smsLoginApi = (params: SmsLoginVO) => {
- return defHttp.post({ url: '/system/auth/sms-login', params })
+export const smsLoginApi = (data: SmsLoginVO) => {
+ return request.post({ url: '/system/auth/sms-login', data })
@@ -1,24 +1,26 @@
import type { AppVO } from './types'
// 查询列表支付应用
-export const getAppPageApi = ({ params }) => {
- return defHttp.get<PageResult<AppVO>>({ url: '/pay/app/page', params })
+export const getAppPageApi = (params) => {
+ return request.get({ url: '/pay/app/page', params })
// 查询详情支付应用
export const getAppApi = (id: number) => {
- return defHttp.get<AppVO>({ url: '/pay/app/get?id=' + id })
+ return request.get({ url: '/pay/app/get?id=' + id })
// 新增支付应用
-export const createAppApi = (params: AppVO) => {
- return defHttp.post({ url: '/pay/app/create', params })
+export const createAppApi = (data: AppVO) => {
+ return request.post({ url: '/pay/app/create', data })
// 修改支付应用
-export const updateAppApi = (params: AppVO) => {
- return defHttp.put({ url: '/pay/app/update', params })
+export const updateAppApi = (data: AppVO) => {
+ return request.put({ url: '/pay/app/update', data })
// 支付应用信息状态修改
@@ -27,20 +29,20 @@ export const changeAppStatusApi = (id: number, status: number) => {
- return defHttp.put({ url: '/pay/app/update-status', data: data })
+ return request.put({ url: '/pay/app/update-status', data: data })
// 删除支付应用
export const deleteAppApi = (id: number) => {
- return defHttp.delete({ url: '/pay/app/delete?id=' + id })
+ return request.delete({ url: '/pay/app/delete?id=' + id })
// 导出支付应用
export const exportAppApi = (params) => {
- return defHttp.get({ url: '/pay/app/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/pay/app/export-excel', params, responseType: 'blob' })
// 根据商ID称搜索应用列表
export const getAppListByMerchantIdApi = (merchantId: number) => {
- return defHttp.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } })
+ return request.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } })
@@ -1,9 +1,11 @@
import type { ChannelVO } from './types'
// 查询列表支付渠道
-export const getChannelPageApi = ({ params }) => {
- return defHttp.get<PageResult<ChannelVO>>({ url: '/pay/channel/page', params })
+export const getChannelPageApi = (params) => {
+ return request.get({ url: '/pay/channel/page', params })
// 查询详情支付渠道
@@ -13,25 +15,25 @@ export const getChannelApi = (merchantId: number, appId: string, code: string) =
appId: appId,
code: code
- return defHttp.get<ChannelVO>({ url: '/pay/channel/get-channel', params: params })
+ return request.get({ url: '/pay/channel/get-channel', params: params })
// 新增支付渠道
-export const createChannelApi = (params: ChannelVO) => {
- return defHttp.post({ url: '/pay/channel/create', params })
+export const createChannelApi = (data: ChannelVO) => {
+ return request.post({ url: '/pay/channel/create', data })
// 修改支付渠道
-export const updateChannelApi = (params: ChannelVO) => {
- return defHttp.put({ url: '/pay/channel/update', params })
+export const updateChannelApi = (data: ChannelVO) => {
+ return request.put({ url: '/pay/channel/update', data })
// 删除支付渠道
export const deleteChannelApi = (id: number) => {
- return defHttp.delete({ url: '/pay/channel/delete?id=' + id })
+ return request.delete({ url: '/pay/channel/delete?id=' + id })
// 导出支付渠道
export const exportChannelApi = (params) => {
- return defHttp.get({ url: '/pay/channel/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/pay/channel/export-excel', params, responseType: 'blob' })
@@ -1,19 +1,21 @@
import type { MerchantVO } from './types'
// 查询列表支付商户
-export const getMerchantPageApi = ({ params }) => {
- return defHttp.get<PageResult<MerchantVO>>({ url: '/pay/merchant/page', params })
+export const getMerchantPageApi = (params) => {
+ return request.get({ url: '/pay/merchant/page', params })
// 查询详情支付商户
export const getMerchantApi = (id: number) => {
- return defHttp.get<MerchantVO>({ url: '/pay/merchant/get?id=' + id })
+ return request.get({ url: '/pay/merchant/get?id=' + id })
// 根据商户名称搜索商户列表
export const getMerchantListByNameApi = (name: string) => {
- return defHttp.get<MerchantVO>({
url: '/pay/merchant/list-by-name?id=',
params: {
name: name
@@ -22,23 +24,23 @@ export const getMerchantListByNameApi = (name: string) => {
// 新增支付商户
-export const createMerchantApi = (params: MerchantVO) => {
- return defHttp.post({ url: '/pay/merchant/create', params })
+export const createMerchantApi = (data: MerchantVO) => {
+ return request.post({ url: '/pay/merchant/create', data })
// 修改支付商户
-export const updateMerchantApi = (params: MerchantVO) => {
- return defHttp.put({ url: '/pay/merchant/update', params })
+export const updateMerchantApi = (data: MerchantVO) => {
+ return request.put({ url: '/pay/merchant/update', data })
// 删除支付商户
export const deleteMerchantApi = (id: number) => {
- return defHttp.delete({ url: '/pay/merchant/delete?id=' + id })
+ return request.delete({ url: '/pay/merchant/delete?id=' + id })
// 导出支付商户
export const exportMerchantApi = (params) => {
- return defHttp.get({ url: '/pay/merchant/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/pay/merchant/export-excel', params, responseType: 'blob' })
// 支付商户状态修改
export const changeMerchantStatusApi = (id: number, status: number) => {
@@ -46,5 +48,5 @@ export const changeMerchantStatusApi = (id: number, status: number) => {
- return defHttp.put({ url: '/pay/merchant/update-status', data: data })
+ return request.put({ url: '/pay/merchant/update-status', data: data })
@@ -1,32 +1,34 @@
import type { OrderVO } from './types'
// 查询列表支付订单
-export const getOrderPageApi = ({ params }) => {
- return defHttp.get<PageResult<OrderVO>>({ url: '/pay/order/page', params })
+export const getOrderPageApi = async (params) => {
+ return await request.get({ url: '/pay/order/page', params })
// 查询详情支付订单
-export const getOrderApi = (id: number) => {
- return defHttp.get<OrderVO>({ url: '/pay/order/get?id=' + id })
+export const getOrderApi = async (id: number) => {
+ return await request.get({ url: '/pay/order/get?id=' + id })
// 新增支付订单
-export const createOrderApi = (params: OrderVO) => {
- return defHttp.post({ url: '/pay/order/create', params })
+export const createOrderApi = async (data: OrderVO) => {
+ return await request.post({ url: '/pay/order/create', data })
// 修改支付订单
-export const updateOrderApi = (params: OrderVO) => {
- return defHttp.put({ url: '/pay/order/update', params })
+export const updateOrderApi = async (data: OrderVO) => {
+ return await request.put({ url: '/pay/order/update', data })
// 删除支付订单
-export const deleteOrderApi = (id: number) => {
- return defHttp.delete({ url: '/pay/order/delete?id=' + id })
+export const deleteOrderApi = async (id: number) => {
+ return await request.delete({ url: '/pay/order/delete?id=' + id })
// 导出支付订单
-export const exportOrderApi = (params) => {
- return defHttp.get({ url: '/pay/order/export-excel', params, responseType: 'blob' })
+export const exportOrderApi = async (params) => {
+ return await request.get({ url: '/pay/order/export-excel', params, responseType: 'blob' })
import type { RefundVO } from './types'
// 查询列表退款订单
-export const getRefundPageApi = ({ params }) => {
- return defHttp.get<PageResult<RefundVO>>({ url: '/pay/refund/page', params })
+export const getRefundPageApi = (params) => {
+ return request.get({ url: '/pay/refund/page', params })
// 查询详情退款订单
export const getRefundApi = (id: number) => {
- return defHttp.get<RefundVO>({ url: '/pay/refund/get?id=' + id })
+ return request.get({ url: '/pay/refund/get?id=' + id })
// 新增退款订单
-export const createRefundApi = (params: RefundVO) => {
- return defHttp.post({ url: '/pay/refund/create', params })
+export const createRefundApi = (data: RefundVO) => {
+ return request.post({ url: '/pay/refund/create', data })
// 修改退款订单
-export const updateRefundApi = (params: RefundVO) => {
- return defHttp.put({ url: '/pay/refund/update', params })
+export const updateRefundApi = (data: RefundVO) => {
+ return request.put({ url: '/pay/refund/update', data })
// 删除退款订单
export const deleteRefundApi = (id: number) => {
- return defHttp.delete({ url: '/pay/refund/delete?id=' + id })
+ return request.delete({ url: '/pay/refund/delete?id=' + id })
// 导出退款订单
export const exportRefundApi = (params) => {
- return defHttp.get({ url: '/pay/refund/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/pay/refund/export-excel', params, responseType: 'blob' })
import type { DeptVO } from './types'
// 查询部门(精简)列表
export const listSimpleDeptApi = () => {
- return defHttp.get({ url: '/system/dept/list-all-simple' })
+ return request.get({ url: '/system/dept/list-all-simple' })
// 查询部门列表
-export const getDeptPageApi = ({ params }) => {
- return defHttp.get<PageResult<DeptVO>>({ url: '/system/dept/list', params })
+export const getDeptPageApi = (params) => {
+ return request.get({ url: '/system/dept/list', params })
// 查询部门详情
export const getDeptApi = (id: number) => {
- return defHttp.get<DeptVO>({ url: '/system/dept/get?id=' + id })
+ return request.get({ url: '/system/dept/get?id=' + id })
// 新增部门
-export const createDeptApi = (params: DeptVO) => {
- return defHttp.post({ url: '/system/dept/create', data: params })
+export const createDeptApi = (data: DeptVO) => {
+ return request.post({ url: '/system/dept/create', data: data })
// 修改部门
export const updateDeptApi = (params: DeptVO) => {
- return defHttp.put({ url: '/system/dept/update', data: params })
+ return request.put({ url: '/system/dept/update', data: params })
// 删除部门
export const deleteDeptApi = (id: number) => {
- return defHttp.delete({ url: '/system/dept/delete?id=' + id })
+ return request.delete({ url: '/system/dept/delete?id=' + id })
@@ -1,36 +1,38 @@
import type { DictDataVO } from './types'
// 查询字典数据(精简)列表
export const listSimpleDictDataApi = () => {
- return defHttp.get({ url: '/system/dict-data/list-all-simple' })
+ return request.get({ url: '/system/dict-data/list-all-simple' })
// 查询字典数据列表
-export const getDictDataPageApi = ({ params }) => {
- return defHttp.get<PageResult<DictDataVO>>({ url: '/system/dict-data/page', params })
+export const getDictDataPageApi = (params) => {
+ return request.get({ url: '/system/dict-data/page', params })
// 查询字典数据详情
export const getDictDataApi = (id: number) => {
- return defHttp.get({ url: '/system/dict-data/get?id=' + id })
+ return request.get({ url: '/system/dict-data/get?id=' + id })
// 新增字典数据
-export const createDictDataApi = (params: DictDataVO) => {
- return defHttp.post({ url: '/system/dict-data/create', params })
+export const createDictDataApi = (data: DictDataVO) => {
+ return request.post({ url: '/system/dict-data/create', data })
// 修改字典数据
-export const updateDictDataApi = (params: DictDataVO) => {
- return defHttp.put({ url: '/system/dict-data/update', params })
+export const updateDictDataApi = (data: DictDataVO) => {
+ return request.put({ url: '/system/dict-data/update', data })
// 删除字典数据
export const deleteDictDataApi = (id: number) => {
- return defHttp.delete({ url: '/system/dict-data/delete?id=' + id })
+ return request.delete({ url: '/system/dict-data/delete?id=' + id })
// 导出字典类型数据
export const exportDictDataApi = (params: DictDataVO) => {
- return defHttp.get({ url: '/system/dict-data/export', params })
+ return request.get({ url: '/system/dict-data/export', params })
import type { DictTypeVO } from './types'
// 查询字典(精简)列表
export const listSimpleDictTypeApi = () => {
- return defHttp.get({ url: '/system/dict-type/list-all-simple' })
+ return request.get({ url: '/system/dict-type/list-all-simple' })
// 查询字典列表
-export const getDictTypePageApi = ({ params }) => {
- return defHttp.get<PageResult<DictTypeVO>>({ url: '/system/dict-type/page', params })
+export const getDictTypePageApi = (params) => {
+ return request.get({ url: '/system/dict-type/page', params })
// 查询字典详情
export const getDictTypeApi = (id: number) => {
- return defHttp.get({ url: '/system/dict-type/get?id=' + id })
+ return request.get({ url: '/system/dict-type/get?id=' + id })
// 新增字典
-export const createDictTypeApi = (params: DictTypeVO) => {
- return defHttp.post({ url: '/system/dict-type/create', params })
+export const createDictTypeApi = (data: DictTypeVO) => {
+ return request.post({ url: '/system/dict-type/create', data })
// 修改字典
-export const updateDictTypeApi = (params: DictTypeVO) => {
- return defHttp.put({ url: '/system/dict-type/update', params })
+export const updateDictTypeApi = (data: DictTypeVO) => {
+ return request.put({ url: '/system/dict-type/update', data })
// 删除字典
export const deleteDictTypeApi = (id: number) => {
- return defHttp.delete({ url: '/system/dict-type/delete?id=' + id })
+ return request.delete({ url: '/system/dict-type/delete?id=' + id })
// 导出字典类型
export const exportDictTypeApi = (params: DictTypeVO) => {
- return defHttp.get({ url: '/system/dict-type/export', params })
+ return request.get({ url: '/system/dict-type/export', params })
@@ -1,31 +1,33 @@
import type { ErrorCodeVO } from './types'
// 查询错误码列表
-export const getErrorCodePageApi = ({ params }) => {
- return defHttp.get<PageResult<ErrorCodeVO>>({ url: '/system/error-code/page', params })
+export const getErrorCodePageApi = (params) => {
+ return request.get({ url: '/system/error-code/page', params })
// 查询错误码详情
export const getErrorCodeApi = (id: number) => {
- return defHttp.get<ErrorCodeVO>({ url: '/system/error-code/get?id=' + id })
+ return request.get({ url: '/system/error-code/get?id=' + id })
// 新增错误码
-export const createErrorCodeApi = (params: ErrorCodeVO) => {
- return defHttp.post({ url: '/system/error-code/create', params })
+export const createErrorCodeApi = (data: ErrorCodeVO) => {
+ return request.post({ url: '/system/error-code/create', data })
// 修改错误码
-export const updateErrorCodeApi = (params: ErrorCodeVO) => {
- return defHttp.put({ url: '/system/error-code/update', params })
+export const updateErrorCodeApi = (data: ErrorCodeVO) => {
+ return request.put({ url: '/system/error-code/update', data })
// 删除错误码
export const deleteErrorCodeApi = (id: number) => {
- return defHttp.delete({ url: '/system/error-code/delete?id=' + id })
+ return request.delete({ url: '/system/error-code/delete?id=' + id })
// 导出错误码
export const excelErrorCodeApi = (params) => {
- return defHttp.get({ url: '/system/error-code/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/system/error-code/export-excel', params, responseType: 'blob' })
@@ -1,11 +1,12 @@
-import type { LoginLogVO } from './types'
// 查询登录日志列表
-export const getLoginLogPageApi = ({ params }) => {
- return defHttp.get<PageResult<LoginLogVO>>({ url: '/system/login-log/page', params })
+export const getLoginLogPageApi = (params) => {
+ return request.get({ url: '/system/login-log/page', params })
// 导出登录日志
export const exportLoginLogApi = (params) => {
- return defHttp.get({ url: '/system/login-log/export', params, responseType: 'blob' })
+ return request.get({ url: '/system/login-log/export', params, responseType: 'blob' })
import type { MenuVO } from './types'
// 查询菜单(精简)列表
export const listSimpleMenusApi = () => {
- return defHttp.get({ url: '/system/menu/list-all-simple' })
+ return request.get({ url: '/system/menu/list-all-simple' })
// 查询菜单列表
export const getMenuListApi = (params) => {
- return defHttp.get({ url: '/system/menu/list', params })
+ return request.get({ url: '/system/menu/list', params })
// 获取菜单详情
export const getMenuApi = (id: number) => {
- return defHttp.get<MenuVO>({ url: '/system/menu/get?id=' + id })
+ return request.get({ url: '/system/menu/get?id=' + id })
// 新增菜单
-export const createMenuApi = (params: MenuVO) => {
- return defHttp.post({ url: '/system/menu/create', params })
+export const createMenuApi = (data: MenuVO) => {
+ return request.post({ url: '/system/menu/create', data })
// 修改菜单
-export const updateMenuApi = (params: MenuVO) => {
- return defHttp.put({ url: '/system/menu/update', params })
+export const updateMenuApi = (data: MenuVO) => {
+ return request.put({ url: '/system/menu/update', data })
// 删除菜单
export const deleteMenuApi = (id: number) => {
- return defHttp.delete({ url: '/system/menu/delete?id=' + id })
+ return request.delete({ url: '/system/menu/delete?id=' + id })
import type { NoticeVO } from './types'
// 查询公告列表
-export const getNoticePageApi = ({ params }) => {
- return defHttp.get<PageResult<NoticeVO>>({ url: '/system/notice/page', params })
+export const getNoticePageApi = (params) => {
+ return request.get({ url: '/system/notice/page', params })
// 查询公告详情
export const getNoticeApi = (id: number) => {
- return defHttp.get<NoticeVO>({ url: '/system/notice/get?id=' + id })
+ return request.get({ url: '/system/notice/get?id=' + id })
// 新增公告
-export const createNoticeApi = (params: NoticeVO) => {
- return defHttp.post({ url: '/system/notice/create', params })
+export const createNoticeApi = (data: NoticeVO) => {
+ return request.post({ url: '/system/notice/create', data })
// 修改公告
-export const updateNoticeApi = (params: NoticeVO) => {
- return defHttp.put({ url: '/system/notice/update', params })
+export const updateNoticeApi = (data: NoticeVO) => {
+ return request.put({ url: '/system/notice/update', data })
// 删除公告
export const deleteNoticeApi = (id: number) => {
- return defHttp.delete({ url: '/system/notice/delete?id=' + id })
+ return request.delete({ url: '/system/notice/delete?id=' + id })
import { OAuth2ClientVo } from './client.types'
// 查询 OAuth2列表
-export const getOAuth2ClientPageApi = ({ params }) => {
- return defHttp.get<PageResult<OAuth2ClientVo>>({ url: '/system/oauth2-client/page', params })
+export const getOAuth2ClientPageApi = (params) => {
+ return request.get({ url: '/system/oauth2-client/page', params })
// 查询 OAuth2详情
export const getOAuth2ClientApi = (id: number) => {
- return defHttp.get<OAuth2ClientVo>({ url: '/system/oauth2-client/get?id=' + id })
+ return request.get({ url: '/system/oauth2-client/get?id=' + id })
// 新增 OAuth2
-export const createOAuth2ClientApi = (params: OAuth2ClientVo) => {
- return defHttp.post({ url: '/system/oauth2-client/create', params })
+export const createOAuth2ClientApi = (data: OAuth2ClientVo) => {
+ return request.post({ url: '/system/oauth2-client/create', data })
// 修改 OAuth2
-export const updateOAuth2ClientApi = (params: OAuth2ClientVo) => {
- return defHttp.put({ url: '/system/oauth2-client/update', params })
+export const updateOAuth2ClientApi = (data: OAuth2ClientVo) => {
+ return request.put({ url: '/system/oauth2-client/update', data })
// 删除 OAuth2
export const deleteOAuth2ClientApi = (id: number) => {
- return defHttp.delete({ url: '/system/oauth2-client/delete?id=' + id })
+ return request.delete({ url: '/system/oauth2-client/delete?id=' + id })
-import { OAuth2TokenVo } from './token.types'
// 查询 token列表
-export const getAccessTokenPageApi = ({ params }) => {
- return defHttp.get<PageResult<OAuth2TokenVo>>({ url: '/system/oauth2-token/page', params })
+export const getAccessTokenPageApi = (params) => {
+ return request.get({ url: '/system/oauth2-token/page', params })
// 删除 token
export const deleteAccessTokenApi = (accessToken: number) => {
- return defHttp.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken })
+ return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken })
-import type { OperateLogVO } from './types'
// 查询操作日志列表
-export const getOperateLogPageApi = ({ params }) => {
- return defHttp.get<PageResult<OperateLogVO>>({ url: '/system/operate-log/page', params })
+export const getOperateLogPageApi = (params) => {
+ return request.get({ url: '/system/operate-log/page', params })
// 导出操作日志
export const exportOperateLogApi = (params) => {
- return defHttp.get({ url: '/system/operate-log/export', params, responseType: 'blob' })
+ return request.get({ url: '/system/operate-log/export', params, responseType: 'blob' })
import type { PostVO } from './types'
// 查询岗位列表
-export const getPostPageApi = ({ params }) => {
- return defHttp.get<PageResult<PostVO>>({ url: '/system/post/page', params })
+export const getPostPageApi = async (params) => {
+ return await request.get({ url: '/system/post/page', params })
// 获取岗位精简信息列表
-export const listSimplePostsApi = () => {
- return defHttp.get<PostVO[]>({ url: '/system/post/list-all-simple' })
+export const listSimplePostsApi = async () => {
+ return await request.get({ url: '/system/post/list-all-simple' })
// 查询岗位详情
-export const getPostApi = (id: number) => {
- return defHttp.get<PostVO>({ url: '/system/post/get?id=' + id })
+export const getPostApi = async (id: number) => {
+ return await request.get({ url: '/system/post/get?id=' + id })
// 新增岗位
-export const createPostApi = (params: PostVO) => {
- return defHttp.post({ url: '/system/post/create', params })
+export const createPostApi = async (data: PostVO) => {
+ return await request.post({ url: '/system/post/create', data })
// 修改岗位
-export const updatePostApi = (params: PostVO) => {
- return defHttp.put({ url: '/system/post/update', params })
+export const updatePostApi = async (data: PostVO) => {
+ return await request.put({ url: '/system/post/update', data })
// 删除岗位
-export const deletePostApi = (id: number) => {
- return defHttp.delete({ url: '/system/post/delete?id=' + id })
+export const deletePostApi = async (id: number) => {
+ return await request.delete({ url: '/system/post/delete?id=' + id })
// 导出岗位
-export const exportPostApi = (params) => {
- return defHttp.get({ url: '/system/post/export', params, responseType: 'blob' })
+export const exportPostApi = async (params) => {
+ return await request.get({ url: '/system/post/export', params, responseType: 'blob' })
import type { RoleVO } from './types'
// 查询角色列表
-export const getRolePageApi = ({ params }) => {
- return defHttp.get<PageResult<RoleVO>>({ url: '/system/role/page', params })
+export const getRolePageApi = (params) => {
+ return request.get({ url: '/system/role/page', params })
// 查询角色详情
export const getRoleApi = (id: number) => {
- return defHttp.get<RoleVO>({ url: '/system/role/get?id=' + id })
+ return request.get({ url: '/system/role/get?id=' + id })
// 新增角色
-export const createRoleApi = (params: RoleVO) => {
- return defHttp.post({ url: '/system/role/create', params })
+export const createRoleApi = (data: RoleVO) => {
+ return request.post({ url: '/system/role/create', data })
// 修改角色
-export const updateRoleApi = (params: RoleVO) => {
- return defHttp.put({ url: '/system/role/update', params })
+export const updateRoleApi = (data: RoleVO) => {
+ return request.put({ url: '/system/role/update', data })
// 修改角色状态
-export const updateRoleStatusApi = (params: RoleVO) => {
- return defHttp.put({ url: '/system/role/update-status', params })
+export const updateRoleStatusApi = (data: RoleVO) => {
+ return request.put({ url: '/system/role/update-status', data })
// 删除角色
export const deleteRoleApi = (id: number) => {
- return defHttp.delete({ url: '/system/role/delete?id=' + id })
+ return request.delete({ url: '/system/role/delete?id=' + id })
@@ -1,42 +1,44 @@
import type { SensitiveWordVO } from './types'
// 查询敏感词列表
-export const getSensitiveWordPageApi = ({ params }) => {
- return defHttp.get<PageResult<SensitiveWordVO>>({ url: '/system/sensitive-word/page', params })
+export const getSensitiveWordPageApi = (params) => {
+ return request.get({ url: '/system/sensitive-word/page', params })
// 查询敏感词详情
export const getSensitiveWordApi = (id: number) => {
- return defHttp.get<SensitiveWordVO>({ url: '/system/sensitive-word/get?id=' + id })
+ return request.get({ url: '/system/sensitive-word/get?id=' + id })
// 新增敏感词
-export const createSensitiveWordApi = (params: SensitiveWordVO) => {
- return defHttp.post({ url: '/system/sensitive-word/create', params })
+export const createSensitiveWordApi = (data: SensitiveWordVO) => {
+ return request.post({ url: '/system/sensitive-word/create', data })
// 修改敏感词
-export const updateSensitiveWordApi = (params: SensitiveWordVO) => {
- return defHttp.put({ url: '/system/sensitive-word/update', params })
+export const updateSensitiveWordApi = (data: SensitiveWordVO) => {
+ return request.put({ url: '/system/sensitive-word/update', data })
// 删除敏感词
export const deleteSensitiveWordApi = (id: number) => {
- return defHttp.delete({ url: '/system/sensitive-word/delete?id=' + id })
+ return request.delete({ url: '/system/sensitive-word/delete?id=' + id })
// 导出敏感词
export const exportSensitiveWordApi = (params) => {
- return defHttp.get({ url: '/system/sensitive-word/export', params, responseType: 'blob' })
+ return request.get({ url: '/system/sensitive-word/export', params, responseType: 'blob' })
// 获取所有敏感词的标签数组
export const getSensitiveWordTagsApi = () => {
- return defHttp.get<SensitiveWordVO>({ url: '/system/sensitive-word/get-tags' })
+ return request.get({ url: '/system/sensitive-word/get-tags' })
// 获得文本所包含的不合法的敏感词数组
export const validateTextApi = (id: number) => {
- return defHttp.get<SensitiveWordVO>({ url: '/system/sensitive-word/validate-text?' + id })
+ return request.get({ url: '/system/sensitive-word/validate-text?' + id })
import type { SmsChannelVO } from './types'
// 查询短信渠道列表
-export const getSmsChannelPageApi = ({ params }) => {
- return defHttp.get<PageResult<SmsChannelVO>>({ url: '/system/sms-channel/page', params })
+export const getSmsChannelPageApi = (params) => {
+ return request.get({ url: '/system/sms-channel/page', params })
// 获得短信渠道精简列表
export function getSimpleSmsChannels() {
- return defHttp.get({ url: '/system/sms-channel/list-all-simple' })
+ return request.get({ url: '/system/sms-channel/list-all-simple' })
// 查询短信渠道详情
export const getSmsChannelApi = (id: number) => {
- return defHttp.get<SmsChannelVO>({ url: '/system/sms-channel/get?id=' + id })
+ return request.get({ url: '/system/sms-channel/get?id=' + id })
// 新增短信渠道
-export const createSmsChannelApi = (params: SmsChannelVO) => {
- return defHttp.post({ url: '/system/sms-channel/create', params })
+export const createSmsChannelApi = (data: SmsChannelVO) => {
+ return request.post({ url: '/system/sms-channel/create', data })
// 修改短信渠道
-export const updateSmsChannelApi = (params: SmsChannelVO) => {
- return defHttp.put({ url: '/system/sms-channel/update', params })
+export const updateSmsChannelApi = (data: SmsChannelVO) => {
+ return request.put({ url: '/system/sms-channel/update', data })
// 删除短信渠道
export const deleteSmsChannelApi = (id: number) => {
- return defHttp.delete({ url: '/system/sms-channel/delete?id=' + id })
+ return request.delete({ url: '/system/sms-channel/delete?id=' + id })
-import type { SmsLogVO } from './types'
// 查询短信日志列表
-export const getSmsLogPageApi = ({ params }) => {
- return defHttp.get<PageResult<SmsLogVO>>({ url: '/system/sms-log/page', params })
+export const getSmsLogPageApi = (params) => {
+ return request.get({ url: '/system/sms-log/page', params })
// 导出短信日志
export const exportSmsLogApi = (params) => {
- return defHttp.get({ url: '/system/sms-log/export', params, responseType: 'blob' })
+ return request.get({ url: '/system/sms-log/export', params, responseType: 'blob' })
import type { SmsTemplateVO, SmsSendVO } from './types'
// 查询短信模板列表
-export const getSmsTemplatePageApi = ({ params }) => {
- return defHttp.get<PageResult<SmsTemplateVO>>({ url: '/system/sms-template/page', params })
+export const getSmsTemplatePageApi = (params) => {
+ return request.get({ url: '/system/sms-template/page', params })
// 查询短信模板详情
export const getSmsTemplateApi = (id: number) => {
- return defHttp.get<SmsTemplateVO>({ url: '/system/sms-template/get?id=' + id })
+ return request.get({ url: '/system/sms-template/get?id=' + id })
// 新增短信模板
-export const createSmsTemplateApi = (params: SmsTemplateVO) => {
- return defHttp.post({ url: '/system/sms-template/create', params })
+export const createSmsTemplateApi = (data: SmsTemplateVO) => {
+ return request.post({ url: '/system/sms-template/create', data })
// 修改短信模板
-export const updateSmsTemplateApi = (params: SmsTemplateVO) => {
- return defHttp.put({ url: '/system/sms-template/update', params })
+export const updateSmsTemplateApi = (data: SmsTemplateVO) => {
+ return request.put({ url: '/system/sms-template/update', data })
// 删除短信模板
export const deleteSmsTemplateApi = (id: number) => {
- return defHttp.delete({ url: '/system/sms-template/delete?id=' + id })
+ return request.delete({ url: '/system/sms-template/delete?id=' + id })
// 发送短信
-export function sendSms(params: SmsSendVO) {
- return defHttp.post({ url: '/system/sms-template/send-sms', params })
+export function sendSms(data: SmsSendVO) {
+ return request.post({ url: '/system/sms-template/send-sms', data })
// 导出短信模板
export const exportPostApi = (params) => {
- return defHttp.get({ url: '/system/sms-template/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/system/sms-template/export-excel', params, responseType: 'blob' })
import type { TenantVO } from './types'
// 查询租户列表
-export const getTenantPageApi = ({ params }) => {
- return defHttp.get<PageResult<TenantVO>>({ url: '/system/tenant/page', params })
+export const getTenantPageApi = (params) => {
+ return request.get({ url: '/system/tenant/page', params })
// 查询租户详情
export const getTenantApi = (id: number) => {
- return defHttp.get<TenantVO>({ url: '/system/tenant/get?id=' + id })
+ return request.get({ url: '/system/tenant/get?id=' + id })
// 新增租户
-export const createTenantApi = (params: TenantVO) => {
- return defHttp.post({ url: '/system/tenant/create', params })
+export const createTenantApi = (data: TenantVO) => {
+ return request.post({ url: '/system/tenant/create', data })
// 修改租户
-export const updateTenantApi = (params: TenantVO) => {
- return defHttp.put({ url: '/system/tenant/update', params })
+export const updateTenantApi = (data: TenantVO) => {
+ return request.put({ url: '/system/tenant/update', data })
// 删除租户
export const deleteTenantApi = (id: number) => {
- return defHttp.delete({ url: '/system/tenant/delete?id=' + id })
+ return request.delete({ url: '/system/tenant/delete?id=' + id })
// 导出租户
export const exportTenantApi = (params) => {
- return defHttp.get({ url: '/system/tenant/export-excel', params, responseType: 'blob' })
+ return request.get({ url: '/system/tenant/export-excel', params, responseType: 'blob' })
@@ -1,33 +1,33 @@
import type { TenantPackageVO } from './types'
// 查询租户套餐列表
-export const getTenantPackageTypePageApi = ({ params }) => {
- return defHttp.get<PageResult<TenantPackageVO>>({ url: '/system/tenant-package/page', params })
+export const getTenantPackageTypePageApi = (params) => {
+ return request.get({ url: '/system/tenant-package/page', params })
// 获得租户
export const getTenantPackageApi = (id: number) => {
- return defHttp.get<TenantPackageVO>({ url: '/system/tenant-package/get?id=' + id })
+ return request.get({ url: '/system/tenant-package/get?id=' + id })
// 新增租户套餐
-export const createTenantPackageTypeApi = (params: TenantPackageVO) => {
- return defHttp.post({ url: '/system/tenant-package/create', params })
+export const createTenantPackageTypeApi = (data: TenantPackageVO) => {
+ return request.post({ url: '/system/tenant-package/create', data })
// 修改租户套餐
-export const updateTenantPackageTypeApi = (params: TenantPackageVO) => {
- return defHttp.put({ url: '/system/tenant-package/update', params })
+export const updateTenantPackageTypeApi = (data: TenantPackageVO) => {
+ return request.put({ url: '/system/tenant-package/update', data })
// 删除租户套餐
export const deleteTenantPackageTypeApi = (id: number) => {
- return defHttp.delete({ url: '/system/tenant-package/delete?id=' + id })
+ return request.delete({ url: '/system/tenant-package/delete?id=' + id })
// // 获取租户套餐精简信息列表
export const getTenantPackageList = () => {
- url: '/system/tenant-package/get-simple-list'
+ return request.get({ url: '/system/tenant-package/get-simple-list' })
@@ -1,51 +1,50 @@
import type { UserVO } from './types'
// 查询用户管理列表
-export const getUserPageApi = ({ params }) => {
- return defHttp.get<PageResult<UserVO>>({ url: '/system/user/page', params })
+export const getUserPageApi = (params) => {
+ return request.get({ url: '/system/user/page', params })
// 查询用户详情
export const getUserApi = (id: number) => {
- return defHttp.get<UserVO>({ url: '/system/user/get?id=' + id })
+ return request.get({ url: '/system/user/get?id=' + id })
// 新增用户
-export const createUserApi = (params: UserVO) => {
- return defHttp.post({ url: '/system/user/create', params })
+export const createUserApi = (data: UserVO) => {
+ return request.post({ url: '/system/user/create', data })
// 修改用户
-export const updateUserApi = (params: UserVO) => {
- return defHttp.put({ url: '/system/user/update', params })
+export const updateUserApi = (data: UserVO) => {
+ return request.put({ url: '/system/user/update', data })
// 删除用户
export const deleteUserApi = (id: number) => {
- return defHttp.delete({ url: '/system/user/delete?id=' + id })
+ return request.delete({ url: '/system/user/delete?id=' + id })
// 导出用户
export const exportUserApi = (params) => {
- return defHttp.get({ url: '/system/user/export', params, responseType: 'blob' })
+ return request.get({ url: '/system/user/export', params, responseType: 'blob' })
// 下载用户导入模板
export const importUserTemplateApi = () => {
- return defHttp.get({ url: '/system/user/get-import-template', responseType: 'blob' })
+ return request.get({ url: '/system/user/get-import-template', responseType: 'blob' })
// 用户密码重置
-export const resetUserPwdApi = (userId: number, password: number) => {
+export const resetUserPwdApi = (id: number, password: string) => {
const data = {
- userId,
+ id,
password
- url: '/system/user/resetPwd',
- data: data
+ return request.put({ url: '/system/user/update-password', data: data })
// 用户状态修改
@@ -54,15 +53,5 @@ export const updateUserStatusApi = (id: number, status: number) => {
- return defHttp.put({ url: '/system/user/update-status', data: data })
-// 查询授权角色
-export const getAuthRoleApi = (userId: string) => {
- return defHttp.get({ url: '/system/user/authRole/' + userId })
-// 保存授权角色
-export const updateAuthRoleApi = (data: any) => {
- return defHttp.put({ url: '/system/user/authRole', params: data })
+ return request.put({ url: '/system/user/update-status', data: data })
-import { ProfileVO } from './types'
// 查询用户个人信息
export const getUserProfileApi = () => {
- return defHttp.get<ProfileVO>({ url: '/system/user/profile/get' })
+ return request.get({ url: '/system/user/profile/get' })
// 修改用户个人信息
-export const updateUserProfileApi = ({ params }) => {
- return defHttp.put({ url: '/system/user/profile/update', params })
+export const updateUserProfileApi = (params) => {
+ return request.put({ url: '/system/user/profile/update', params })
export const updateUserPwdApi = (oldPassword: string, newPassword: string) => {
url: '/system/user/profile/update-password',
oldPassword: oldPassword,
@@ -24,5 +25,5 @@ export const updateUserPwdApi = (oldPassword: string, newPassword: string) => {
// 用户头像上传
export const uploadAvatarApi = (data) => {
- return defHttp.put({ url: '/system/user/profile/update-avatar', data: data })
+ return request.put({ url: '/system/user/profile/update-avatar', data: data })
@@ -1 +1 @@
-<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.147.062a13 13 0 0 1 4.94.945c1.55.63 2.907 1.526 4.069 2.688a13.148 13.148 0 0 1 2.761 4.069c.678 1.55 1.017 3.245 1.017 5.086v102.3c0 3.681-1.187 6.733-3.56 9.155-2.373 2.422-5.352 3.633-8.937 3.633H12.992c-3.875 0-7-1.26-9.373-3.779-2.373-2.518-3.56-5.667-3.56-9.445V12.704c0-3.39 1.163-6.345 3.488-8.863C5.872 1.32 8.972.062 12.847.062h102.3zM81.434 109.047c1.744 0 3.003-.412 3.778-1.235.775-.824 1.163-1.914 1.163-3.27 0-1.26-.388-2.325-1.163-3.197-.775-.872-2.034-1.307-3.778-1.307H72.57c.097-.194.145-.485.145-.872V27.09h9.01c1.743 0 2.954-.436 3.633-1.308.678-.872 1.017-1.938 1.017-3.197 0-1.26-.34-2.325-1.017-3.197-.679-.872-1.89-1.308-3.633-1.308H46.268c-1.743 0-2.954.436-3.632 1.308-.678.872-1.018 1.938-1.018 3.197 0 1.26.34 2.325 1.018 3.197.678.872 1.889 1.308 3.632 1.308h8.138v72.075c0 .193.024.339.073.436.048.096.072.242.072.436H46.56c-1.744 0-3.003.435-3.778 1.307-.775.872-1.163 1.938-1.163 3.197 0 1.356.388 2.446 1.163 3.27.775.823 2.034 1.235 3.778 1.235h34.875z"/></svg>
+<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.147.062a13 13 0 014.94.945c1.55.63 2.907 1.526 4.069 2.688a13.148 13.148 0 012.761 4.069c.678 1.55 1.017 3.245 1.017 5.086v102.3c0 3.681-1.187 6.733-3.56 9.155-2.373 2.422-5.352 3.633-8.937 3.633H12.992c-3.875 0-7-1.26-9.373-3.779-2.373-2.518-3.56-5.667-3.56-9.445V12.704c0-3.39 1.163-6.345 3.488-8.863C5.872 1.32 8.972.062 12.847.062h102.3zM81.434 109.047c1.744 0 3.003-.412 3.778-1.235.775-.824 1.163-1.914 1.163-3.27 0-1.26-.388-2.325-1.163-3.197-.775-.872-2.034-1.307-3.778-1.307H72.57c.097-.194.145-.485.145-.872V27.09h9.01c1.743 0 2.954-.436 3.633-1.308.678-.872 1.017-1.938 1.017-3.197 0-1.26-.34-2.325-1.017-3.197-.679-.872-1.89-1.308-3.633-1.308H46.268c-1.743 0-2.954.436-3.632 1.308-.678.872-1.018 1.938-1.018 3.197 0 1.26.34 2.325 1.018 3.197.678.872 1.889 1.308 3.632 1.308h8.138v72.075c0 .193.024.339.073.436.048.096.072.242.072.436H46.56c-1.744 0-3.003.435-3.778 1.307-.775.872-1.163 1.938-1.163 3.197 0 1.356.388 2.446 1.163 3.27.775.823 2.034 1.235 3.778 1.235h34.875z"/></svg>
@@ -94,8 +94,8 @@ const dialogStyle = computed(() => {
<style lang="less">
.@{elNamespace}-dialog__header {
- border-bottom: 1px solid var(--tags-view-border-color);
margin-right: 0 !important;
+ border-bottom: 1px solid var(--tags-view-border-color);
.@{elNamespace}-dialog__footer {
@@ -293,7 +293,7 @@ export default defineComponent({
<style lang="less" scoped>
.@{elNamespace}-form.@{namespace}-form .@{elNamespace}-row {
- margin-left: 0 !important;
+ margin-left: 0 !important;
</style>
@@ -55,34 +55,31 @@ watch(
</script>
<template>
- <div>
- <router-link
+ <router-link
+ :class="[
+ prefixCls,
+ layout !== 'classic' ? `${prefixCls}__Top` : '',
+ 'flex !h-[var(--logo-height)] items-center cursor-pointer pl-8px relative',
+ 'dark:bg-[var(--el-bg-color)]'
+ ]"
+ to="/"
+ >
+ <img
+ src="@/assets/imgs/logo.png"
+ class="w-[calc(var(--logo-height)-10px)] h-[calc(var(--logo-height)-10px)]"
+ />
+ <div
+ v-if="show"
:class="[
- prefixCls,
- layout !== 'classic' ? `${prefixCls}__Top` : '',
- 'flex !h-[var(--logo-height)] items-center cursor-pointer pl-8px relative',
- 'dark:bg-[var(--el-bg-color)]'
+ 'ml-10px text-16px font-700',
+ {
+ 'text-[var(--logo-title-text-color)]': layout === 'classic',
+ 'text-[var(--top-header-text-color)]':
+ layout === 'topLeft' || layout === 'top' || layout === 'cutMenu'
]"
- to="/"
- <img
- src="@/assets/imgs/logo.png"
- class="w-[calc(var(--logo-height)-10px)] h-[calc(var(--logo-height)-10px)]"
- alt=""
- />
- <div
- v-if="show"
- :class="[
- 'ml-10px text-16px font-700',
- {
- 'text-[var(--logo-title-text-color)]': layout === 'classic',
- 'text-[var(--top-header-text-color)]':
- layout === 'topLeft' || layout === 'top' || layout === 'cutMenu'
- ]"
- >
- {{ title }}
- </div>
- </router-link>
+ {{ title }}
+ </div>
+ </router-link>
</template>
@@ -13,7 +13,7 @@ export default defineComponent({
pageSize: propTypes.number.def(10),
currentPage: propTypes.number.def(1),
// 是否多选
- selection: propTypes.bool.def(true),
+ selection: propTypes.bool.def(false),
// 是否所有的超出隐藏,优先级低于schema中的showOverflowTooltip,
showOverflowTooltip: propTypes.bool.def(true),
// 表头
@@ -84,7 +84,7 @@ const refreshSelectedTag = async (view?: RouteLocationNormalizedLoaded) => {
tagsViewStore.delCachedView()
const { path, query } = view
await nextTick()
- await replace({
+ replace({
path: '/redirect' + path,
query: query
@@ -107,7 +107,15 @@ const toLastView = () => {
if (latestView) {
push(latestView)
} else {
- push('/')
+ if (
+ unref(currentRoute).path === permissionStore.getAddRouters[0].path ||
+ unref(currentRoute).path === permissionStore.getAddRouters[0].redirect
+ ) {
+ addTags()
+ return
+ // You can set another route
+ push(permissionStore.getAddRouters[0].path)
@@ -22,9 +22,9 @@ const { push, replace } = useRouter()
const user = wsCache.get('user')
-const avatar = user ? user.user.avatar : '@/assets/imgs/avatar.gif'
+const avatar = user?.user?.avatar ? user.user.avatar : '@/assets/imgs/avatar.gif'
-const userName = user ? user.user.nickname : 'Admin'
+const userName = user?.user?.nickname ? user.user.nickname : 'Admin'
const loginOut = () => {
ElMessageBox.confirm(t('common.loginOutMessage'), t('common.reminder'), {
@@ -38,7 +38,6 @@ const loginOut = () => {
removeToken()
tagsViewStore.delAllViews()
replace('/login')
- // }
.catch(() => {})
@@ -1,287 +0,0 @@
-import type { AxiosRequestConfig, AxiosInstance, AxiosResponse, AxiosError } from 'axios'
-import type { RequestOptions, RequestResult, UploadFileParams } from 'types/axios'
-import type { CreateAxiosOptions } from './axiosTransform'
-import axios from 'axios'
-import qs from 'qs'
-import { AxiosCanceler } from './axiosCancel'
-import { isFunction } from '@/utils/is'
-import { cloneDeep } from 'lodash-es'
-import { ContentTypeEnum } from '@/enums/http.enum'
-import { RequestEnum } from '@/enums/http.enum'
-import { downloadByData } from '@/utils/filt'
-export * from './axiosTransform'
-/**
- * @description: axios module
- */
-export class VAxios {
- private axiosInstance: AxiosInstance
- private readonly options: CreateAxiosOptions
- constructor(options: CreateAxiosOptions) {
- this.options = options
- this.axiosInstance = axios.create(options)
- this.setupInterceptors()
- /**
- * @description: Create axios instance
- private createAxios(config: CreateAxiosOptions): void {
- this.axiosInstance = axios.create(config)
- private getTransform() {
- const { transform } = this.options
- return transform
- getAxios(): AxiosInstance {
- return this.axiosInstance
- * @description: Reconfigure axios
- configAxios(config: CreateAxiosOptions) {
- if (!this.axiosInstance) {
- return
- this.createAxios(config)
- * @description: Set general header
- setHeader(headers: any): void {
- Object.assign(this.axiosInstance.defaults.headers, headers)
- * @description: Interceptor configuration
- private setupInterceptors() {
- const transform = this.getTransform()
- if (!transform) {
- const {
- requestInterceptors,
- requestInterceptorsCatch,
- responseInterceptors,
- responseInterceptorsCatch
- } = transform
- const axiosCanceler = new AxiosCanceler()
- // Request interceptor configuration processing
- this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {
- // If cancel repeat request is turned on, then cancel repeat request is prohibited
- // @ts-ignore
- headers: { ignoreCancelToken }
- } = config
- const ignoreCancel =
- ignoreCancelToken !== undefined
- ? ignoreCancelToken
- : this.options.requestOptions?.ignoreCancelToken
- !ignoreCancel && axiosCanceler.addPending(config)
- if (requestInterceptors && isFunction(requestInterceptors)) {
- config = requestInterceptors(config, this.options)
- return config
- }, undefined)
- // Request interceptor error capture
- requestInterceptorsCatch &&
- isFunction(requestInterceptorsCatch) &&
- this.axiosInstance.interceptors.request.use(undefined, requestInterceptorsCatch)
- // Response result interceptor processing
- this.axiosInstance.interceptors.response.use((res: AxiosResponse<any>) => {
- res && axiosCanceler.removePending(res.config)
- if (responseInterceptors && isFunction(responseInterceptors)) {
- res = responseInterceptors(res)
- return res
- // Response result interceptor error capture
- responseInterceptorsCatch &&
- isFunction(responseInterceptorsCatch) &&
- this.axiosInstance.interceptors.response.use(undefined, responseInterceptorsCatch)
- * @description: File Upload
- uploadFile<T = any>(config: AxiosRequestConfig, params: UploadFileParams) {
- const formData = new window.FormData()
- const customFilename = params.name || 'file'
- if (params.filename) {
- formData.append(customFilename, params.file, params.filename)
- } else {
- formData.append(customFilename, params.file)
- if (params.data) {
- Object.keys(params.data).forEach((key) => {
- const value = params.data![key]
- if (Array.isArray(value)) {
- value.forEach((item) => {
- formData.append(`${key}[]`, item)
- formData.append(key, params.data![key])
- return this.axiosInstance.request<T>({
- ...config,
- method: 'POST',
- data: {
- file: formData
- },
- 'Content-type': ContentTypeEnum.FORM_DATA,
- ignoreCancelToken: true
- // support form-data
- supportFormData(config: AxiosRequestConfig) {
- const headers = config.headers || this.options.headers
- const contentType = headers?.['Content-Type'] || headers?.['content-type']
- if (
- contentType !== ContentTypeEnum.FORM_URLENCODED ||
- !Reflect.has(config, 'data') ||
- config.method?.toUpperCase() === RequestEnum.GET
- ) {
- return {
- data: qs.stringify(config.data, { arrayFormat: 'brackets' })
- get<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {
- return this.request({ ...config, method: 'GET' }, options)
- post<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {
- return this.request({ ...config, method: 'POST' }, options)
- put<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {
- return this.request({ ...config, method: 'PUT' }, options)
- delete<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {
- return this.request({ ...config, method: 'DELETE' }, options)
- download<T = any>(
- config: AxiosRequestConfig,
- title: string,
- options?: RequestOptions
- ): Promise<T> {
- let conf: CreateAxiosOptions = cloneDeep({
- method: 'GET',
- const { requestOptions } = this.options
- const opt: RequestOptions = Object.assign({}, requestOptions, options)
- const { beforeRequestHook, requestCatchHook } = transform || {}
- if (beforeRequestHook && isFunction(beforeRequestHook)) {
- conf = beforeRequestHook(conf, opt)
- conf.requestOptions = opt
- conf = this.supportFormData(conf)
- return new Promise((resolve, reject) => {
- this.axiosInstance
- .request<any, AxiosResponse<RequestResult>>(conf)
- .then((res: AxiosResponse<RequestResult>) => {
- resolve(res as unknown as Promise<T>)
- // download file
- if (typeof res != undefined) {
- downloadByData(res?.data as unknown as BlobPart, title)
- .catch((e: Error | AxiosError) => {
- if (requestCatchHook && isFunction(requestCatchHook)) {
- reject(requestCatchHook(e, opt))
- if (axios.isAxiosError(e)) {
- // rewrite error message from axios in here
- reject(e)
- request<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {
- let conf: CreateAxiosOptions = cloneDeep(config)
- const { beforeRequestHook, requestCatchHook, transformRequestHook } = transform || {}
- if (transformRequestHook && isFunction(transformRequestHook)) {
- try {
- const ret = transformRequestHook(res, opt)
- resolve(ret)
- } catch (err) {
- reject(err || new Error('request error!'))
@@ -1,57 +0,0 @@
-import type { AxiosRequestConfig, Canceler } from 'axios'
-// 用于存储每个请求的标识和取消功能
-let pendingMap = new Map<string, Canceler>()
-export const getPendingUrl = (config: AxiosRequestConfig) => [config.method, config.url].join('&')
-export class AxiosCanceler {
- * 添加请求
- * @param {Object} config
- addPending(config: AxiosRequestConfig) {
- this.removePending(config)
- const url = getPendingUrl(config)
- config.cancelToken =
- config.cancelToken ||
- new axios.CancelToken((cancel) => {
- if (!pendingMap.has(url)) {
- // If there is no current request in pending, add it
- pendingMap.set(url, cancel)
- * @description: 清除所有待处理的
- removeAllPending() {
- pendingMap.forEach((cancel) => {
- cancel && isFunction(cancel) && cancel()
- pendingMap.clear()
- * 删除请求
- removePending(config: AxiosRequestConfig) {
- if (pendingMap.has(url)) {
- // 如果挂起中有当前请求标识符,则需要取消并删除当前请求
- const cancel = pendingMap.get(url)
- cancel && cancel(url)
- pendingMap.delete(url)
- /** 重置 */
- reset(): void {
- pendingMap = new Map<string, Canceler>()
@@ -1,35 +0,0 @@
-/** 数据处理类,可根据项目配置 */
-import type { AxiosRequestConfig, AxiosResponse } from 'axios'
-import type { RequestOptions, RequestResult } from 'types/axios'
-export interface CreateAxiosOptions extends AxiosRequestConfig {
- authenticationScheme?: string
- transform?: AxiosTransform
- requestOptions?: RequestOptions
-export abstract class AxiosTransform {
- /** 请求前的流程配置 */
- beforeRequestHook?: (config: AxiosRequestConfig, options: RequestOptions) => AxiosRequestConfig
- /** 请求成功处理 */
- transformRequestHook?: (res: AxiosResponse<RequestResult>, options: RequestOptions) => any
- /** 请求失败处理 */
- requestCatchHook?: (e: Error, options: RequestOptions) => Promise<any>
- /** 请求之前的拦截器 */
- requestInterceptors?: (
- options: CreateAxiosOptions
- ) => AxiosRequestConfig
- /** 请求之后的拦截器 */
- responseInterceptors?: (res: AxiosResponse<any>) => AxiosResponse<any>
- /** 请求之前的拦截器错误处理 */
- requestInterceptorsCatch?: (error: Error) => void
- /** 请求之后的拦截器错误处理 */
- responseInterceptorsCatch?: (error: Error) => void
@@ -1,74 +0,0 @@
-import type { ErrorMessageMode } from 'types/axios'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useCache } from '@/hooks/web/useCache'
-const { wsCache } = useCache()
-export function checkStatus(
- status: number,
- msg: string,
- errorMessageMode: ErrorMessageMode = 'message'
-): void {
- const { t } = useI18n()
- let errMessage = ''
- switch (status) {
- case 400:
- errMessage = `${msg}`
- break
- // 401: Not logged in
- // 如果未登录,跳转到登录页面,并携带当前页面的路径
- // 成功登录后返回当前页面。此步骤需要在登录页面上操作。
- case 401:
- wsCache.clear()
- errMessage = msg || t('sys.api.errMsg401')
- case 403:
- errMessage = t('sys.api.errMsg403')
- // 404请求不存在
- case 404:
- errMessage = t('sys.api.errMsg404')
- case 405:
- errMessage = t('sys.api.errMsg405')
- case 408:
- errMessage = t('sys.api.errMsg408')
- case 500:
- errMessage = t('sys.api.errMsg500')
- case 501:
- errMessage = t('sys.api.errMsg501')
- case 502:
- errMessage = t('sys.api.errMsg502')
- case 503:
- errMessage = t('sys.api.errMsg503')
- case 504:
- errMessage = t('sys.api.errMsg504')
- case 505:
- errMessage = t('sys.api.errMsg505')
- case 901:
- default:
- if (errMessage) {
- if (errorMessageMode === 'modal') {
- ElMessageBox.confirm(errMessage, {
- cancelButtonText: t('common.cancel'),
- type: 'warning'
- } else if (errorMessageMode === 'message') {
- ElMessage.error(errMessage)
@@ -0,0 +1,46 @@
+const config: {
+ base_url: {
+ base: string
+ dev: string
+ pro: string
+ test: string
+ result_code: number | string
+ default_headers: AxiosHeaders
+ request_timeout: number
+} = {
+ /**
+ * api请求基础路径
+ */
+ // 开发环境接口前缀
+ base: '',
+ // 打包开发环境接口前缀
+ dev: '',
+ // 打包生产环境接口前缀
+ pro: '',
+ // 打包测试环境接口前缀
+ test: ''
+ },
+ * 接口成功返回状态码
+ result_code: 200,
+ * 接口请求超时时间
+ request_timeout: 30000,
+ * 默认接口请求类型
+ * 可选值:application/x-www-form-urlencoded multipart/form-data
+ default_headers: 'application/json'
+export { config }
@@ -0,0 +1,6 @@
+export default {
+ '401': '认证失败,无法访问系统资源',
+ '403': '当前操作没有权限',
+ '404': '访问资源不存在',
+ default: '系统未知错误,请反馈给管理员'
@@ -1,45 +0,0 @@
-import { isObject, isString } from '@/utils/is'
-const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss'
-export function joinTimestamp<T extends boolean>(
- join: boolean,
- restful: T
-): T extends true ? string : object
-export function joinTimestamp(join: boolean, restful = false): string | object {
- if (!join) {
- return restful ? '' : {}
- const now = new Date().getTime()
- if (restful) {
- return `?_t=${now}`
- return { _t: now }
-/** 格式化请求参数中的时间 */
-export function formatRequestDate(params: Recordable) {
- if (Object.prototype.toString.call(params) !== '[object Object]') {
- for (const key in params) {
- if (params[key] && params[key]._isAMomentObject) {
- params[key] = params[key].format(DATE_TIME_FORMAT)
- if (isString(key)) {
- const value = params[key]
- if (value) {
- params[key] = isString(value) ? value.trim() : value
- } catch (error: any) {
- throw new Error(error)
- if (isObject(params[key])) {
- formatRequestDate(params[key])
@@ -1,285 +1,148 @@
-// axios配置 可自行根据项目进行更改,只需更改该文件即可,其他文件可以不动
-// The axios configuration can be changed according to the project, just change the file, other files can be left unchanged
+import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios'
+import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
+import qs from 'qs'
+import { config } from '@/config/axios/config'
+import { getAccessToken, getRefreshToken, getTenantId } from '@/utils/auth'
+import errorCode from './errorCode'
-import type { AxiosResponse } from 'axios'
-import type { AxiosTransform, CreateAxiosOptions } from './axiosTransform'
-import { VAxios } from './Axios'
-import { checkStatus } from './checkStatus'
-import { RequestEnum, ResultEnum, ContentTypeEnum } from '@/enums/http.enum'
-import { isString } from '@/utils/is'
-import { getAccessToken, setToken } from '@/utils/auth'
-import { setObjToUrlParams, deepMerge } from './utils'
-import { joinTimestamp, formatRequestDate } from './helper'
-import { refreshToken } from '@/api/login'
-const { t } = useI18n()
const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE
const BASE_URL = import.meta.env.VITE_BASE_URL
const BASE_API = import.meta.env.VITE_API_URL
-const apiUrl = BASE_URL + BASE_API
+const { result_code, base_url } = config
+// 需要忽略的提示。忽略后,自动 Promise.reject('error')
+const ignoreMsgs = [
+ '无效的刷新令牌', // 刷新令牌被删除时,不用提示
+ '刷新令牌已过期' // 使用刷新令牌,刷新获取新的访问令牌时,结果因为过期失败,此时需要忽略。否则,会导致继续 401,无法跳转到登出界面
+]
// 是否显示重新登录
-// export let isRelogin = { show: false }
-// TODO 请求队列
-// let requestList = []
+export const isRelogin = { show: false }
+// Axios 无感知刷新令牌,参考 https://www.dashingdog.cn/article/11 与 https://segmentfault.com/a/1190000020210980 实现
// 是否正在刷新中
let isRefreshToken = false
- * @description: 数据处理,方便区分多种处理方式
-const transform: AxiosTransform = {
- * @description: 处理请求数据。如果数据不是预期格式,可直接抛出错误
- transformRequestHook: async (res: AxiosResponse<RequestResult>, options: RequestOptions) => {
- const { isTransformResponse, isReturnNativeResponse } = options
- // 是否返回原生响应头 比如:需要获取响应头时使用该属性
- if (isReturnNativeResponse) {
- // 不进行任何处理,直接返回
- // 用于页面代码可能需要直接获取code,data,message这些信息时开启
- if (!isTransformResponse) {
- return res.data
- // 错误的时候返回
- const { data } = res
- if (!data) {
- // 返回“[HTTP]请求没有返回值”;
- throw new Error(t('sys.api.apiRequestFailed'))
- // 这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
- const { code, msg } = data
- const result = data.data
- // TODO 输出res 方便调试,完成后删除
- // console.info('data')
- // console.info(data)
- // console.info('result')
- // console.info(result)
- // TODO 芋艿:文件下载,需要特殊处理
- if (code === undefined) {
- console.log(res)
+export const PATH_URL = base_url[import.meta.env.VITE_API_BASEPATH]
+// 创建axios实例
+const service: AxiosInstance = axios.create({
+ baseURL: BASE_URL + BASE_API, // api 的 base_url
+ timeout: config.request_timeout // 请求超时时间
+})
+// request拦截器
+service.interceptors.request.use(
+ (config: AxiosRequestConfig) => {
+ // 是否需要设置 token
+ const isToken = (config!.headers || {}).isToken === false
+ if (getAccessToken() && !isToken) {
+ ;(config as Recordable).headers.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token
- // 这里逻辑可以根据项目进行修改
- const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS
- if (hasSuccess) {
- return result
- // 在此处根据自己项目的实际情况对不同的code执行不同的操作
- // 如果不希望中断当前请求,请return数据,否则直接抛出异常即可
- let timeoutMsg = ''
- switch (code) {
- case ResultEnum.TIMEOUT:
- // TODO 未完成
- // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
- if (!isRefreshToken) {
- isRefreshToken = true
- const refreshTokenRes = await refreshToken()
- // 1. 如果获取不到刷新令牌,则只能执行登出操作
- if (!refreshTokenRes) {
- timeoutMsg = t('sys.api.timeoutMessage')
- wsCache.clear() // 清除浏览器全部临时缓存
- ElMessageBox.confirm(timeoutMsg, {
- confirmButtonText: t('login.relogin'),
- .then(() => {})
- .catch(() => {})
- // 2. 进行刷新访问令牌
- // 2.1 刷新成功,则回放队列的请求 + 当前请求
- setToken(refreshTokenRes.data)
- if (msg) {
- timeoutMsg = msg
- // errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误
- // errorMessageMode='none' 一般是调用时明确表示不希望自动弹出错误提示
- if (options.errorMessageMode === 'modal') {
- await ElMessageBox.confirm(timeoutMsg, {
- type: 'error'
- } else if (options.errorMessageMode === 'message') {
- ElMessage.error(timeoutMsg)
+ // 设置租户
+ if (tenantEnable) {
+ const tenantId = getTenantId()
+ if (tenantId) (config as Recordable).headers.common['tenant-id'] = tenantId
- throw new Error(timeoutMsg || t('sys.api.apiRequestFailed'))
- // 请求之前处理config
- beforeRequestHook: (config, options) => {
- const { apiUrl, joinParamsToUrl, formatDate, joinTime = true } = options
- if (apiUrl && isString(apiUrl)) {
- config.url = `${apiUrl}${config.url}`
+ config.method === 'post' &&
+ config!.headers!['Content-Type'] === 'application/x-www-form-urlencoded'
+ config.data = qs.stringify(config.data)
- const params = config.params || {}
- const data = config.data || false
- formatDate && data && !isString(data) && formatRequestDate(data)
- if (config.method?.toUpperCase() === RequestEnum.GET) {
- if (!isString(params)) {
- // 给 get 请求加上时间戳参数,避免从缓存中拿数据。
- config.params = Object.assign(params || {}, joinTimestamp(joinTime, false))
- // 兼容restful风格
- config.url = config.url + params + `${joinTimestamp(joinTime, true)}`
- config.params = undefined
- formatDate && formatRequestDate(params)
- if (Reflect.has(config, 'data') && config.data && Object.keys(config.data).length > 0) {
- config.data = data
- config.params = params
- // 非GET请求如果没有提供data,则将params视为data
- config.data = params
+ // get参数编码
+ if (config.method === 'get' && config.params) {
+ let url = config.url as string
+ url += '?'
+ const keys = Object.keys(config.params)
+ for (const key of keys) {
+ if (config.params[key] !== void 0 && config.params[key] !== null) {
+ url += `${key}=${encodeURIComponent(config.params[key])}&`
- if (joinParamsToUrl) {
- config.url = setObjToUrlParams(
- config.url as string,
- Object.assign({}, config.params, config.data)
- )
- config.url = config.url + params
+ // 给 get 请求加上时间戳参数,避免从缓存中拿数据
+ // const now = new Date().getTime()
+ // url = url.substring(0, url.length - 1) + `?_t=${now}`
+ config.params = {}
+ config.url = url
return config
},
+ (error: AxiosError) => {
+ // Do something with request error
+ console.log(error) // for debug
+ Promise.reject(error)
+)
- * @description: 请求拦截器处理
- requestInterceptors: (config, options) => {
- const token = getAccessToken()
- if (token && (config as Recordable)?.requestOptions?.withToken !== false) {
- // jwt token
- ;(config as Recordable).headers.Authorization = options.authenticationScheme
- ? `${options.authenticationScheme} ${token}`
- : token
- // 设置租户
- if (tenantEnable) {
- const tenantId = wsCache.get('tenantId')
- if (tenantId) (config as Recordable).headers.common['tenant-id'] = tenantId
+// response 拦截器
+service.interceptors.response.use(
+ async (response: AxiosResponse<Recordable>) => {
+ const { data } = response
+ if (!data) {
+ // 返回“[HTTP]请求没有返回值”;
+ throw new Error()
- * @description: 响应拦截器处理
- responseInterceptors: (res: AxiosResponse<any>) => {
- * @description: 响应错误处理
- responseInterceptorsCatch: (error: any) => {
- const { response, code, message, config } = error || {}
- const errorMessageMode = config?.requestOptions?.errorMessageMode || 'none'
- const msg: string = response?.data?.msg ?? ''
- const err: string = error?.toString?.() ?? ''
- if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) {
- errMessage = t('sys.api.apiTimeoutMessage')
- if (err?.includes('Network Error')) {
- errMessage = t('sys.api.networkExceptionMsg')
+ // 未设置状态码则默认成功状态
+ const code = data.code || result_code
+ // 获取错误信息
+ const msg = data.msg || errorCode[code] || errorCode['default']
+ if (ignoreMsgs.indexOf(msg) !== -1) {
+ // 如果是忽略的错误码,直接返回 msg 异常
+ return Promise.reject(msg)
+ } else if (code === 401) {
+ // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
+ if (!isRefreshToken) {
+ isRefreshToken = true
+ // 1. 如果获取不到刷新令牌,则只能执行登出操作
+ if (!getRefreshToken()) {
+ return handleAuthorized()
- return Promise.reject(error)
- } catch (error) {
- throw new Error(error as unknown as string)
+ } else if (code === 500) {
+ ElMessage.error(msg)
+ return Promise.reject(new Error(msg))
+ } else if (code === 901) {
+ ElMessage.error(
+ '<div>演示模式,无法进行写操作</div>' +
+ '<div> </div>' +
+ '<div>参考 https://doc.iocoder.cn/ 教程</div>' +
+ '<div>5 分钟搭建本地环境</div>'
+ )
+ } else if (code !== 200) {
+ if (msg === '无效的刷新令牌') {
+ // hard coding:忽略这个提示,直接登出
+ console.log(msg)
+ } else {
+ ElNotification.error({
+ title: msg
+ return Promise.reject('error')
+ return data
- checkStatus(error?.response?.status, msg, errorMessageMode)
+ console.log('err' + error) // for debug
+ ElMessage.error(error.message)
return Promise.reject(error)
+function handleAuthorized() {
+ if (!isRelogin.show) {
+ isRelogin.show = true
+ ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
+ confirmButtonText: '重新登录',
+ cancelButtonText: '取消',
+ type: 'warning'
+ .then(() => {
+ isRelogin.show = false
+ .catch(() => {
+ return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
-function createAxios(opt?: Partial<CreateAxiosOptions>) {
- return new VAxios(
- deepMerge(
- // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes
- // authentication schemes,e.g: Bearer
- // authenticationScheme: 'Bearer',
- authenticationScheme: 'Bearer',
- timeout: 10 * 1000,
- // 基础接口地址
- // baseURL: globSetting.apiUrl,
- headers: { 'Content-Type': ContentTypeEnum.JSON },
- // 如果是form-data格式
- // headers: { 'Content-Type': ContentTypeEnum.FORM_URLENCODED },
- // 数据处理方式
- transform,
- // 配置项,下面的选项都可以在独立的接口请求中覆盖
- requestOptions: {
- // 默认将prefix 添加到url
- joinPrefix: true,
- isReturnNativeResponse: false,
- // 需要对返回数据进行处理
- isTransformResponse: true,
- // post请求的时候添加参数到url
- joinParamsToUrl: false,
- // 格式化提交参数时间
- formatDate: true,
- // 消息提示类型
- errorMessageMode: 'message',
- // 接口地址
- apiUrl: apiUrl,
- // 是否加入时间戳
- joinTime: true,
- // 忽略重复请求
- ignoreCancelToken: true,
- // 是否携带token
- withToken: true
- opt || {}
-export const defHttp = createAxios()
-// other api url
-// export const otherHttp = createAxios({
-// requestOptions: {
-// apiUrl: 'xxx',
-// urlPrefix: 'xxx',
-// },
-// });
+export { service }
@@ -1,63 +0,0 @@
-import { unref } from 'vue'
-import { isObject } from '@/utils/is'
-// dynamic use hook props
-export const getDynamicProps = <T, U>(props: T): Partial<U> => {
- const ret: Recordable = {}
- Object.keys(props).map((key) => {
- ret[key] = unref((props as Recordable)[key])
- return ret as Partial<U>
-export const openWindow = (
- url: string,
- opt?: {
- target?: '_self' | '_blank' | string
- noopener?: boolean
- noreferrer?: boolean
-) => {
- const { target = '__blank', noopener = true, noreferrer = true } = opt || {}
- const feature: string[] = []
- noopener && feature.push('noopener=yes')
- noreferrer && feature.push('noreferrer=yes')
- window.open(url, target, feature.join(','))
- * Add the object as a parameter to the URL
- * @param baseUrl url
- * @param obj
- * @returns {string}
- * eg:
- * let obj = {a: '3', b: '4'}
- * setObjToUrlParams('www.baidu.com', obj)
- * ==>www.baidu.com?a=3&b=4
-export const setObjToUrlParams = (baseUrl: string, obj: any): string => {
- let parameters = ''
- for (const key in obj) {
- parameters += key + '=' + encodeURIComponent(obj[key]) + '&'
- parameters = parameters.replace(/&$/, '')
- return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, '?') + parameters
- * @description: Set ui mount node
-export const getPopupContainer = (node?: HTMLElement): HTMLElement => {
- return (node?.parentNode as HTMLElement) ?? document.body
-export function deepMerge<T = any>(src: any = {}, target: any = {}): T {
- let key: string
- for (key in target) {
- src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key])
- return src
@@ -1,51 +0,0 @@
- * @description: Request result set
-export enum ResultEnum {
- SUCCESS = 0,
- ERROR = 500,
- TIMEOUT = 401,
- TYPE = 'success'
- * @description: request method
-export enum RequestEnum {
- GET = 'GET',
- POST = 'POST',
- PUT = 'PUT',
- DELETE = 'DELETE'
- * @description: contentType
-export enum ContentTypeEnum {
- // json
- JSON = 'application/json;charset=UTF-8',
- // form-data qs
- FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',
- // form-data upload
- FORM_DATA = 'multipart/form-data;charset=UTF-8'
- * Exception related enumeration
-export enum ExceptionEnum {
- // page not access
- PAGE_NOT_ACCESS = 403,
- // page not found
- PAGE_NOT_FOUND = 404,
- // error
- // net work error
- NET_WORK_ERROR = 10000,
- // No data on the page. In fact, it is not an exception page
- PAGE_NOT_DATA = 10100
@@ -1,46 +1,48 @@
-// import { service } from '@/config/axios'
-// import { AxiosPromise } from 'axios'
-// import { config } from '@/config/axios/config'
-// const { default_headers } = config
-// const request = <T>(option: AxiosConfig): AxiosPromise<T> => {
-// const { url, method, params, data, headersType, responseType } = option
-// return service({
-// url: url,
-// method,
-// params,
-// data,
-// responseType: responseType,
-// headers: {
-// 'Content-Type': headersType || default_headers
-// }
-// })
-// function getFn<T = any>(option: AxiosConfig): AxiosPromise<T> {
-// return request<T>({ method: 'get', ...option })
-// function postFn<T = any>(option: AxiosConfig): AxiosPromise<T> {
-// return request<T>({ method: 'post', ...option })
-// function deleteFn<T = any>(option: AxiosConfig): AxiosPromise<T> {
-// return request<T>({ method: 'delete', ...option })
-// function putFn<T = any>(option: AxiosConfig): AxiosPromise<T> {
-// return request<T>({ method: 'put', ...option })
-// export const useAxios = () => {
-// return {
-// get: getFn,
-// post: postFn,
-// delete: deleteFn,
-// put: putFn
+import { service } from '@/config/axios'
+const { default_headers } = config
+const request = (option: AxiosConfig) => {
+ const { url, method, params, data, headersType, responseType } = option
+ return service({
+ url: url,
+ method,
+ params,
+ data,
+ responseType: responseType,
+ headers: {
+ 'Content-Type': headersType || default_headers
+async function getFn<T = any>(option: AxiosConfig): Promise<T> {
+ const res = await request({ method: 'GET', ...option })
+ return res.data
+async function postFn<T = any>(option: AxiosConfig): Promise<T> {
+ const res = await request({ method: 'POST', ...option })
+async function deleteFn<T = any>(option: AxiosConfig): Promise<T> {
+ const res = await request({ method: 'DELETE', ...option })
+async function putFn<T = any>(option: AxiosConfig): Promise<T> {
+ const res = await request({ method: 'PUT', ...option })
+export const useAxios = () => {
+ return {
+ get: getFn,
+ post: postFn,
+ delete: deleteFn,
+ put: putFn
@@ -1,33 +1,38 @@
import download from '@/utils/download'
import { Table, TableExpose } from '@/components/Table'
-import { ElMessage, ElMessageBox, ElTable } from 'element-plus'
-import { computed, nextTick, reactive, ref, unref, watch } from 'vue'
+import { ElTable, ElMessageBox, ElMessage } from 'element-plus'
+import { ref, reactive, watch, computed, unref, nextTick } from 'vue'
import type { TableProps } from '@/components/Table/src/types'
+import { useI18n } from '@/hooks/web/useI18n'
const { t } = useI18n()
+interface ResponseType<T = any> {
+ list: T[]
+ total?: string
-interface UseTableConfig<T, L> {
- getListApi: (option: L) => Promise<T>
- delListApi?: (ids: string | number) => Promise<unknown>
- exportListApi?: (option: L) => Promise<T>
+interface UseTableConfig<T = any> {
+ getListApi: (option: any) => Promise<T>
+ delListApi?: (option: any) => Promise<T>
+ exportListApi?: (option: any) => Promise<T>
+ // 返回数据格式配置
+ response?: ResponseType
props?: TableProps
-interface TableObject<K, L> {
+interface TableObject<T = any> {
pageSize: number
currentPage: number
total: number
- tableList: K[]
- paramsObj: L
+ tableList: T[]
+ params: any
loading: boolean
exportLoading: boolean
- currentRow: Nullable<K>
+ currentRow: Nullable<T>
-export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(
- config?: UseTableConfig<T, L>
- const tableObject = reactive<TableObject<K, L>>({
+export const useTable = <T = any>(config?: UseTableConfig<T>) => {
+ const tableObject = reactive<TableObject<T>>({
// 页数
pageSize: 10,
// 当前页
@@ -37,7 +42,7 @@ export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(
// 表格数据
tableList: [],
// AxiosConfig 配置
- paramsObj: {} as L,
+ params: {},
// 加载中
loading: true,
// 导出加载中
@@ -48,11 +53,9 @@ export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(
const paramsObj = computed(() => {
return {
- params: {
- ...tableObject.paramsObj.params,
- pageSize: tableObject.pageSize,
- pageNo: tableObject.currentPage
+ ...tableObject.params,
+ pageSize: tableObject.pageSize,
+ pageNo: tableObject.currentPage
@@ -109,33 +112,25 @@ export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(
await (config?.delListApi && config?.delListApi(ids))
ElMessage.success(t('common.delSuccess'))
// 计算出临界点
- tableObject.currentPage =
+ const currentPage =
tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1
? tableObject.currentPage > 1
? tableObject.currentPage - 1
: tableObject.currentPage
+ tableObject.currentPage = currentPage
methods.getList()
- const methods: {
- setProps: (props: Recordable) => void
- getList: () => Promise<void>
- setColumn: (columnProps: TableSetPropsType[]) => void
- setSearchParams: (data: Recordable) => void
- getSelections: () => Promise<K[]>
- delList: (ids: string | number | string[] | number[], multiple: boolean) => Promise<void>
- exportList: (fileName: string) => Promise<void>
- } = {
+ const methods = {
getList: async () => {
tableObject.loading = true
- const res = await config
- ?.getListApi(unref(paramsObj) as unknown as L)
- .finally(() => {
- tableObject.loading = false
+ const res = await config?.getListApi(unref(paramsObj)).finally(() => {
+ tableObject.loading = false
if (res) {
tableObject.tableList = res?.list
tableObject.total = res?.total
@@ -151,41 +146,42 @@ export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(
getSelections: async () => {
const table = await getTable()
- return (table?.selections || []) as K[]
+ return (table?.selections || []) as T[]
// 与Search组件结合
setSearchParams: (data: Recordable) => {
tableObject.currentPage = 1
- tableObject.paramsObj = Object.assign(tableObject.paramsObj, {
- pageNo: tableObject.currentPage,
- ...data
+ tableObject.params = Object.assign(tableObject.params, {
+ pageNo: tableObject.currentPage,
+ ...data
// 删除数据
- delList: async (ids: string | number | string[] | number[], multiple: boolean) => {
+ delList: async (
+ ids: string | number | string[] | number[],
+ multiple: boolean,
+ message = true
+ ) => {
const tableRef = await getTable()
- let message = 'common.delDataMessage'
if (multiple) {
if (!tableRef?.selections.length) {
ElMessage.warning(t('common.delNoData'))
return
- message = 'common.delMessage'
- ElMessageBox.confirm(t(message), t('common.confirmTitle'), {
- confirmButtonText: t('common.ok'),
- .then(async () => {
+ if (message) {
+ ElMessageBox.confirm(t('common.delMessage'), t('common.confirmTitle'), {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ }).then(async () => {
await delData(ids)
+ await delData(ids)
// 导出列表
exportList: async (fileName: string) => {
@@ -196,14 +192,11 @@ export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(
type: 'warning'
.then(async () => {
- ?.exportListApi?.(unref(paramsObj) as unknown as L)
+ const res = await config?.exportListApi?.(unref(paramsObj) as unknown as T)
download.excel(res, fileName)
.finally(() => {
tableObject.exportLoading = false
@@ -27,8 +27,8 @@ export const useValidator = () => {
- // 不能有空格
const notSpace = (val: any, callback: Callback, message: string) => {
+ // 用户名不能有空格
if (val.indexOf(' ') !== -1) {
callback(new Error(message))
@@ -36,8 +36,8 @@ export const useValidator = () => {
- // 不能是特殊字符
const notSpecialCharacters = (val: any, callback: Callback, message: string) => {
+ // 密码不能是特殊字符
if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) {
@@ -1,25 +1,37 @@
// 引入windi css
import '@/plugins/windi.css'
// 导入全局的svg图标
import '@/plugins/svgIcon'
// 初始化多语言
import { setupI18n } from '@/plugins/vueI18n'
// 引入状态管理
import { setupStore } from '@/store'
// 全局组件
import { setupGlobCom } from '@/components'
// 引入element-plus
import { setupElementPlus } from '@/plugins/elementPlus'
// 引入全局样式
import '@/styles/index.less'
// 引入动画
import '@/plugins/animate.css'
import { setupRouter } from './router'
// 权限
-import { setupAuth } from './directive'
+import { setupAuth } from './directives'
import { createApp } from 'vue'
import App from './App.vue'
// 创建实例
const setupAll = async () => {
const app = createApp(App)
@@ -1,72 +0,0 @@
-import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
-const { t } = useI18n() // 国际化
-const message = {
- // 消息提示
- msg(content: string) {
- ElMessage.info(content)
- // 错误消息
- msgError(content: string) {
- ElMessage.error(content)
- // 成功消息
- msgSuccess(content: string) {
- ElMessage.success(content)
- // 警告消息
- msgWarning(content: string) {
- ElMessage.warning(content)
- // 弹出提示
- alert(content: string) {
- ElMessageBox.alert(content, t('common.confirmTitle'))
- // 错误提示
- alertError(content: string) {
- ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'error' })
- // 成功提示
- alertSuccess(content: string) {
- ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'success' })
- // 警告提示
- alertWarning(content: string) {
- ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'warning' })
- // 通知提示
- notify(content: string) {
- ElNotification.info(content)
- // 错误通知
- notifyError(content: string) {
- ElNotification.error(content)
- // 成功通知
- notifySuccess(content: string) {
- ElNotification.success(content)
- // 警告通知
- notifyWarning(content: string) {
- ElNotification.warning(content)
- // 确认窗体
- confirm(content: string) {
- return ElMessageBox.confirm(content, t('common.confirmTitle'), {
- // 提交内容
- prompt(content: string) {
- return ElMessageBox.prompt(content, t('common.confirmTitle'), {
-export default message
@@ -26,11 +26,10 @@ const router = createRouter({
history: createWebHashHistory(),
strict: true,
routes: remainingRouter as RouteRecordRaw[],
- // routes: constantRoutes.concat(...remainingRouter),
scrollBehavior: () => ({ left: 0, top: 0 })
-// 路由白名单
+// 路由不重定向白名单
const whiteList = [
'/login',
'/social-login',
@@ -97,7 +96,6 @@ export const resetRouter = (): void => {
router.hasRoute(name) && router.removeRoute(name)
- routes: remainingRouter as RouteRecordRaw[]
export const setupRouter = (app: App<Element>) => {
@@ -1,9 +1,10 @@
import { store } from '../index'
import { defineStore } from 'pinia'
-import { getInfoApi } from '@/api/login'
import { getAccessToken } from '@/utils/auth'
import { useCache } from '@/hooks/web/useCache'
+const { wsCache } = useCache()
interface UserInfoVO {
permissions: []
roles: []
@@ -13,7 +14,6 @@ interface UserInfoVO {
nickname: string
export const useUserStore = defineStore({
id: 'admin-user',
@@ -27,17 +27,15 @@ export const useUserStore = defineStore({
}),
actions: {
- // TODO 设置store刷新页面就消失
- async getUserInfoAction() {
+ async getUserInfoAction(userInfo: UserInfoVO) {
if (!getAccessToken()) {
this.resetState()
return null
- const res = await getInfoApi()
- this.permissions = res.permissions
- this.roles = res.roles
- this.user = res.user
- wsCache.set('user', res)
+ this.permissions = userInfo.permissions
+ this.roles = userInfo.roles
+ this.user = userInfo.user
+ wsCache.set('user', userInfo)
resetState() {
this.permissions = []
@@ -1,2 +1,2 @@
@import './var.css';
-@import 'element-plus/theme-chalk/dark/css-vars.css';
+@import 'element-plus/theme-chalk/dark/css-vars.css';
@@ -1,29 +1,101 @@
import { TokenType } from '@/api/login/types'
+import { decrypt, encrypt } from '@/utils/jsencrypt'
const { wsCache } = useCache()
const AccessTokenKey = 'ACCESS_TOKEN'
const RefreshTokenKey = 'REFRESH_TOKEN'
// 获取token
-export function getAccessToken() {
+export const getAccessToken = () => {
// 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
return wsCache.get('ACCESS_TOKEN')
// 刷新token
-export function getRefreshToken() {
+export const getRefreshToken = () => {
return wsCache.get(RefreshTokenKey)
// 设置token
-export function setToken(token: TokenType) {
+export const setToken = (token: TokenType) => {
wsCache.set(RefreshTokenKey, token.refreshToken, { exp: token.expiresTime })
wsCache.set(AccessTokenKey, token.accessToken)
// 删除token
-export function removeToken() {
+export const removeToken = () => {
wsCache.delete(AccessTokenKey)
wsCache.delete(RefreshTokenKey)
+// ========== 账号相关 ==========
+const UsernameKey = 'USERNAME'
+const PasswordKey = 'PASSWORD'
+const RememberMeKey = 'REMEMBER_ME'
+export const getUsername = () => {
+ return wsCache.get(UsernameKey)
+export const setUsername = (username: string) => {
+ wsCache.set(UsernameKey, username)
+export const removeUsername = () => {
+ wsCache.delete(UsernameKey)
+export const getPassword = () => {
+ const password = wsCache.get(PasswordKey)
+ return password ? decrypt(password) : undefined
+export const setPassword = (password: string) => {
+ wsCache.set(PasswordKey, encrypt(password))
+export const removePassword = () => {
+ wsCache.delete(PasswordKey)
+export const getRememberMe = () => {
+ return wsCache.get(RememberMeKey) === 'true'
+export const setRememberMe = (rememberMe: string) => {
+ wsCache.set(RememberMeKey, rememberMe)
+export const removeRememberMe = () => {
+ wsCache.delete(RememberMeKey)
+// ========== 租户相关 ==========
+const TenantIdKey = 'TENANT_ID'
+const TenantNameKey = 'TENANT_NAME'
+export const getTenantName = () => {
+ return wsCache.get(TenantNameKey)
+export const setTenantName = (username: string) => {
+ wsCache.set(TenantNameKey, username)
+export const removeTenantName = () => {
+ wsCache.delete(TenantNameKey)
+export const getTenantId = () => {
+ return wsCache.get(TenantIdKey)
+export const setTenantId = (username: string) => {
+ wsCache.set(TenantIdKey, username)
+export const removeTenantId = () => {
+ wsCache.delete(TenantIdKey)
@@ -1,130 +0,0 @@
-import { required as requiredRule } from '@/utils/formRules'
-import dayjs from 'dayjs'
-export class FormSchemaBuilder {
- static input(label: string, field: string, required: Boolean = false): FormSchema {
- label,
- field,
- component: 'Input',
- formItemProps: {
- rules: required ? [requiredRule] : []
- static inputNumber(
- label: string,
- field: string,
- value: number,
- required: Boolean = false
- ): FormSchema {
- value,
- component: 'InputNumber',
- static radioButton(
- options: ComponentOptions[],
- component: 'RadioButton',
- componentProps: {
- options
- static select(
- value: number | null,
- component: 'Select',
- static textarea(
- rows: number,
- span: number,
- type: 'textarea',
- rows: rows
- colProps: {
- span: span
-export class TableColumnBuilder {
- static column(label: string, field: string): TableColumn {
- field
- static date(label: string, field: string, template?: string): TableColumn {
- formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
- return dayjs(cellValue).format(template || 'YYYY-MM-DD HH:mm:ss')
- static action(width: number): TableColumn {
- label: t('table.action'),
- field: 'action',
- width: width + 'px'
-export class ComponentOptionsBuilder {
- static option(label: string, value: number): ComponentOptions {
- value
@@ -0,0 +1,31 @@
+import { JSEncrypt } from 'jsencrypt/bin/jsencrypt.min'
+// 密钥对生成 http://web.chacuo.net/netrsakeypair
+const publicKey =
+ 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
+ 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
+const privateKey =
+ 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
+ '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
+ 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
+ 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
+ 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
+ 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
+ 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
+ 'UP8iWi1Qw0Y='
+// 加密
+export const encrypt = (txt: string) => {
+ const encryptor = new JSEncrypt()
+ encryptor.setPublicKey(publicKey) // 设置公钥
+ return encryptor.encrypt(txt) // 对数据进行加密
+// 解密
+export const decrypt = (txt: string) => {
+ encryptor.setPrivateKey(privateKey) // 设置私钥
+ return encryptor.decrypt(txt) // 对数据进行解密
@@ -94,13 +94,13 @@ export const generateRoutes = (routes: AppCustomRouteRecordRaw[]): AppRouteRecor
return res
-export const getRedirect = (parentPath: string, children: Array<Object>) => {
+export const getRedirect = (parentPath: string, children: AppCustomRouteRecordRaw[]) => {
if (!children || children.length == 0) {
return parentPath
- const path = generateRoutePath(parentPath, children[0]?.path)
+ const path = generateRoutePath(parentPath, children[0].path)
// 递归子节点
- return getRedirect(path, children[0]?.children)
+ if (children[0].children) return getRedirect(path, children[0].children)
const generateRoutePath = (parentPath: string, path: string) => {
if (parentPath.endsWith('/')) {
@@ -12,8 +12,8 @@ import {
ElDivider
} from 'element-plus'
import { reactive, ref, unref, onMounted, computed, watch } from 'vue'
-import { getCodeImgApi, getTenantIdByNameApi, loginApi, getAsyncRoutesApi } from '@/api/login'
-import { setToken } from '@/utils/auth'
+import * as LoginApi from '@/api/login'
+import { setToken, setTenantId } from '@/utils/auth'
import { useUserStoreWithOut } from '@/store/modules/user'
import { usePermissionStore } from '@/store/modules/permission'
@@ -68,14 +68,14 @@ const loginData = reactive({
const getCode = async () => {
- const res = await getCodeImgApi()
+ const res = await LoginApi.getCodeImgApi()
loginData.codeImg = 'data:image/gif;base64,' + res.img
loginData.loginForm.uuid = res.uuid
//获取租户ID
const getTenantId = async () => {
- const res = await getTenantIdByNameApi(loginData.loginForm.tenantName)
- wsCache.set('tenantId', res)
+ const res = await LoginApi.getTenantIdByNameApi(loginData.loginForm.tenantName)
+ setTenantId(res)
const handleLogin = async () => {
@@ -83,10 +83,11 @@ const handleLogin = async () => {
const data = await validForm()
if (!data) return
loginLoading.value = true
- await loginApi(loginData.loginForm)
+ await LoginApi.loginApi(loginData.loginForm)
.then(async (res) => {
setToken(res)
- await userStore.getUserInfoAction()
+ const userInfo = await LoginApi.getInfoApi()
+ await userStore.getUserInfoAction(userInfo)
await getRoutes()
.catch(() => {
@@ -100,9 +101,9 @@ const handleLogin = async () => {
// 获取路由
const getRoutes = async () => {
// 后端过滤菜单
- const routers = await getAsyncRoutesApi()
- wsCache.set('roleRouters', routers)
- await permissionStore.generateRoutes(routers).catch(() => {})
+ const res = await LoginApi.getAsyncRoutesApi()
+ wsCache.set('roleRouters', res)
+ await permissionStore.generateRoutes(res).catch(() => {})
permissionStore.getAddRouters.forEach((route) => {
addRoute(route as RouteRecordRaw) // 动态添加可访问路由表
@@ -1,279 +0,0 @@
-<script setup lang="ts">
-import { reactive, ref, unref, watch, onMounted } from 'vue'
-import { Form } from '@/components/Form'
-import { ElCheckbox, ElLink } from 'element-plus'
-import { required } from '@/utils/formRules'
-import { useForm } from '@/hooks/web/useForm'
-import { getTenantIdByNameApi, getCodeImgApi, loginApi, getAsyncRoutesApi } from '@/api/login'
-import { usePermissionStore } from '@/store/modules/permission'
-import { useRouter } from 'vue-router'
-import { useUserStoreWithOut } from '@/store/modules/user'
-import type { RouteLocationNormalizedLoaded, RouteRecordRaw } from 'vue-router'
-import { UserLoginVO } from '@/api/login/types'
-const userStore = useUserStoreWithOut()
-const permissionStore = usePermissionStore()
-const { currentRoute, addRoute, push } = useRouter()
-const rules = {
- tenantName: [required],
- username: [required],
- password: [required],
- code: [required]
-const loginData = reactive({
- codeImg: '',
- isShowPassword: false,
- captchaEnable: true,
- tenantEnable: true,
- token: '',
- loading: {
- signIn: false
- loginForm: {
- tenantName: '芋道源码',
- username: 'admin',
- password: 'admin123',
- code: '',
- uuid: ''
-})
-const schema = reactive<FormSchema[]>([
- field: 'title',
- span: 24
- field: 'tenantName',
- label: t('login.tenantname'),
- value: loginData.loginForm.tenantName,
- placeholder: t('login.tenantNamePlaceholder')
- field: 'username',
- label: t('login.username'),
- value: loginData.loginForm.username,
- placeholder: t('login.usernamePlaceholder')
- field: 'password',
- label: t('login.password'),
- value: loginData.loginForm.password,
- component: 'InputPassword',
- style: {
- width: '100%'
- placeholder: t('login.passwordPlaceholder')
- field: 'code',
- label: t('login.code'),
- value: loginData.loginForm.code,
- span: 12
- placeholder: t('login.codePlaceholder')
- field: 'codeImg',
- field: 'tool',
- field: 'login',
- field: 'other',
- component: 'Divider',
- label: t('login.otherLogin'),
- contentPosition: 'center'
- field: 'otherIcon',
-])
-const iconSize = 30
-const remember = ref(false)
-const { register, elFormRef, methods } = useForm()
-const loading = ref(false)
-const iconColor = '#999'
-const redirect = ref<string>('')
-watch(
- () => currentRoute.value,
- (route: RouteLocationNormalizedLoaded) => {
- redirect.value = route?.query?.redirect as string
- immediate: true
-)
-// 获取验证码
-const getCode = async () => {
- loginData.codeImg = 'data:image/gif;base64,' + res.img
- loginData.loginForm.uuid = res.uuid
-//获取租户ID
-const getTenantId = async () => {
-// 登录
-const signIn = async () => {
- await getTenantId()
- const formRef = unref(elFormRef)
- await formRef?.validate(async (isValid) => {
- if (isValid) {
- loading.value = true
- const { getFormData } = methods
- const formData = await getFormData<UserLoginVO>()
- formData.uuid = loginData.loginForm.uuid
- await loginApi(formData)
- .then(async (res) => {
- setToken(res)
- getRoutes()
- .catch(() => {
- getCode()
- .finally(() => (loading.value = false))
-// 获取路由
-const getRoutes = async () => {
- // 后端过滤菜单
- permissionStore.getAddRouters.forEach((route) => {
- addRoute(route as RouteRecordRaw) // 动态添加可访问路由表
- permissionStore.setIsAddRouters(true)
- push({ path: redirect.value || permissionStore.addRouters[0].path })
-onMounted(() => {
-</script>
-<template>
- <Form
- :schema="schema"
- :rules="rules"
- label-position="top"
- hide-required-asterisk
- size="large"
- @register="register"
- v-show="false"
- <template #header>
- <h2 class="text-2xl font-bold text-center w-[100%]">{{ t('login.login') }}</h2>
- </template>
- <template #codeImg>
- <img :src="loginData.codeImg" @click="getCode" alt="" />
- <template #tool>
- <div class="flex justify-between items-center w-[100%]">
- <ElCheckbox v-model="remember" :label="t('login.remember')" size="small" />
- <ElLink type="primary" :underline="false">{{ t('login.forgetPassword') }}</ElLink>
- <template #login>
- <ElButton :loading="loading" type="primary" class="w-[100%]" @click="signIn">
- {{ t('login.login') }}
- </ElButton>
- <template #otherIcon>
- <div class="flex justify-between w-[100%]">
- <Icon
- icon="ant-design:github-filled"
- :size="iconSize"
- class="cursor-pointer anticon"
- :color="iconColor"
- icon="ant-design:wechat-filled"
- icon="ant-design:alipay-circle-filled"
- icon="ant-design:weibo-circle-filled"
- </Form>
-</template>
-<style lang="less" scoped>
-:deep(.anticon) {
- &:hover {
- color: var(--el-color-primary) !important;
-</style>
@@ -1,16 +1,16 @@
<script setup lang="ts">
import { useIcon } from '@/hooks/web/useIcon'
-import { reactive, ref, unref, watch, onMounted, computed } from 'vue'
+import { reactive, ref, unref, watch, computed } from 'vue'
import LoginFormTitle from './LoginFormTitle.vue'
import { ElForm, ElFormItem, ElInput, ElRow, ElCol, ElMessage } from 'element-plus'
import { useI18n } from '@/hooks/web/useI18n'
import { required } from '@/utils/formRules'
import {
getTenantIdByNameApi,
- getCodeImgApi,
getAsyncRoutesApi,
sendSmsCodeApi,
- smsLoginApi
+ smsLoginApi,
+ getInfoApi
} from '@/api/login'
@@ -40,9 +40,6 @@ const rules = {
const loginData = reactive({
codeImg: '',
- // TODO @jinz:多余的变量 isShowPassword、captchaEnable
tenantEnable: true,
token: '',
loading: {
@@ -55,8 +52,7 @@ const loginData = reactive({
code: ''
-// TODO @jinz:smsVO 小写哈
-const SmsVO = reactive({
+const smsVO = reactive({
smsCode: {
mobile: '',
scene: 21
@@ -70,9 +66,9 @@ const mobileCodeTimer = ref(0)
const redirect = ref<string>('')
const getSmsCode = async () => {
await getTenantId()
- SmsVO.smsCode.mobile = loginData.loginForm.mobileNumber
- console.log('getSmsCode begin:', SmsVO.smsCode)
- await sendSmsCodeApi(SmsVO.smsCode)
+ smsVO.smsCode.mobile = loginData.loginForm.mobileNumber
+ console.log('getSmsCode begin:', smsVO.smsCode)
+ await sendSmsCodeApi(smsVO.smsCode)
// 提示验证码发送成功
ElMessage({
@@ -102,12 +98,6 @@ watch(
immediate: true
)
-// 获取验证码 TODO @jinz:是不是可以去掉?手机这里暂时不用验证码
// 获取租户 ID
const res = await getTenantIdByNameApi(loginData.loginForm.tenantName)
@@ -119,12 +109,13 @@ const signIn = async () => {
- SmsVO.loginSms.mobile = loginData.loginForm.mobileNumber
- SmsVO.loginSms.code = loginData.loginForm.code
- await smsLoginApi(SmsVO.loginSms)
+ smsVO.loginSms.mobile = loginData.loginForm.mobileNumber
+ smsVO.loginSms.code = loginData.loginForm.code
+ await smsLoginApi(smsVO.loginSms)
setToken(res?.token)
+ const userInfo = await getInfoApi()
getRoutes()
@@ -145,9 +136,6 @@ const getRoutes = async () => {
permissionStore.setIsAddRouters(true)
push({ path: redirect.value || permissionStore.addRouters[0].path })
<el-form
@@ -1,4 +1,5 @@
-export { default as LoginForm } from './LoginForm.vue'
-export { default as MobileForm } from './MobileForm.vue'
-export { default as LoginFormOld } from './LoginFormOld.vue' // TODO jinz:old 是不是可以删除哈,git 可以管理的
-export { default as LoginFormTitle } from './LoginFormTitle.vue'
+import LoginForm from './LoginForm.vue'
+import MobileForm from './MobileForm.vue'
+import LoginFormTitle from './LoginFormTitle.vue'
+export { LoginForm, MobileForm, LoginFormTitle }
@@ -1,5 +1,4 @@
import { ref, computed, unref, Ref } from 'vue'
export enum LoginStateEnum {
LOGIN,
@@ -40,97 +39,3 @@ export function useFormValid<T extends Object = any>(formRef: Ref<any>) {
validForm
-// TODO @jinz:多余的,是不是可以删除哈
-export function useFormRules(formData?: Recordable) {
- const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder')))
- const getPasswordFormRule = computed(() => createRule(t('sys.login.passwordPlaceholder')))
- const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')))
- const getMobileFormRule = computed(() => createRule(t('sys.login.mobilePlaceholder')))
- const validatePolicy = async (_: RuleObject, value: boolean) => {
- return !value ? Promise.reject(t('sys.login.policyPlaceholder')) : Promise.resolve()
- const validateConfirmPassword = (password: string) => {
- return async (_: RuleObject, value: string) => {
- if (!value) {
- return Promise.reject(t('sys.login.passwordPlaceholder'))
- if (value !== password) {
- return Promise.reject(t('sys.login.diffPwd'))
- return Promise.resolve()
- const getFormRules = computed(
- (): {
- [k: string]: ValidationRule | ValidationRule[]
- } => {
- const accountFormRule = unref(getAccountFormRule)
- const passwordFormRule = unref(getPasswordFormRule)
- const smsFormRule = unref(getSmsFormRule)
- const mobileFormRule = unref(getMobileFormRule)
- const mobileRule = {
- sms: smsFormRule,
- mobile: mobileFormRule
- switch (unref(currentState)) {
- // register form rules
- case LoginStateEnum.REGISTER:
- account: accountFormRule,
- password: passwordFormRule,
- confirmPassword: [
- validator: validateConfirmPassword(formData?.password),
- trigger: 'change'
- ],
- policy: [
- validator: validatePolicy,
- ...mobileRule
- // reset password form rules
- case LoginStateEnum.RESET_PASSWORD:
- // mobile form rules
- case LoginStateEnum.MOBILE:
- return mobileRule
- // login form rules
- password: passwordFormRule
- getFormRules
-function createRule(message: string) {
- return [
- required: true,
- message,
@@ -53,7 +53,9 @@ const beforeUpload = (file: Blob) => {
const reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = () => {
- state.options.img = reader.result
+ if (reader.result) {
+ state.options.img = reader.result as string
@@ -10,7 +10,7 @@ import * as ApiAccessLogApi from '@/api/infra/apiAccessLog'
const { t } = useI18n() // 国际化
// ========== 列表相关 ==========
-const { register, tableObject, methods } = useTable<PageResult<ApiAccessLogVO>, ApiAccessLogVO>({
+const { register, tableObject, methods } = useTable<ApiAccessLogVO>({
getListApi: ApiAccessLogApi.getApiAccessLogPageApi
const { getList, setSearchParams } = methods
@@ -12,7 +12,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
-const { register, tableObject, methods } = useTable<PageResult<ApiErrorLogVO>, ApiErrorLogVO>({
+const { register, tableObject, methods } = useTable<ApiErrorLogVO>({
getListApi: ApiErrorLogApi.getApiErrorLogPageApi,
exportListApi: ApiErrorLogApi.exportApiErrorLogApi
@@ -27,7 +27,6 @@ const loading = ref(false)
const activeName = ref('cloum')
const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>()
const genInfoRef = ref<ComponentRef<typeof GenInfoFormVue>>()
-// TODO: 提交
const submitForm = async () => {
const basicInfo = unref(basicInfoRef)
const genInfo = unref(genInfoRef)
@@ -14,7 +14,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
const { push } = useRouter()
-const { register, tableObject, methods } = useTable<PageResult<CodegenTableVO>, CodegenTableVO>({
+const { register, tableObject, methods } = useTable<CodegenTableVO>({
getListApi: CodegenApi.getCodegenTablePageApi,
delListApi: CodegenApi.deleteCodegenTableApi
@@ -71,7 +71,7 @@ getList()
<!-- 操作工具栏 -->
<div class="mb-10px">
<el-button type="primary" v-hasPermi="['infra:codegen:create']" @click="openImportTable">
- <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.import') }}
+ <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.import') }}
</el-button>
</div>
<!-- 列表 -->
@@ -12,7 +12,7 @@ import * as ConfigApi from '@/api/infra/config'
-const { register, tableObject, methods } = useTable<PageResult<ConfigVO>, ConfigVO>({
+const { register, tableObject, methods } = useTable<ConfigVO>({
getListApi: ConfigApi.getConfigPageApi,
delListApi: ConfigApi.deleteConfigApi,
exportListApi: ConfigApi.exportConfigApi
@@ -102,7 +102,7 @@ getList()
<el-button type="primary" v-hasPermi="['infra:config:create']" @click="handleCreate">
- <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }}
+ <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
<el-button
type="warning"
@@ -92,7 +92,7 @@ onMounted(async () => {
type="primary"
@click="handleCreate"
<Table :columns="allSchemas.tableColumns" :data="tableData">
@@ -12,7 +12,7 @@ const { wsCache } = useCache()
-const { register, tableObject, methods } = useTable<PageResult<FileVO>, FileVO>({
+const { register, tableObject, methods } = useTable<FileVO>({
getListApi: FileApi.getFilePageApi,
delListApi: FileApi.deleteFileApi
@@ -12,7 +12,7 @@ import * as FileConfigApi from '@/api/infra/fileConfig'
-const { register, tableObject, methods } = useTable<PageResult<FileConfigVO>, FileConfigVO>({
+const { register, tableObject, methods } = useTable<FileConfigVO>({
getListApi: FileConfigApi.getFileConfigPageApi,
delListApi: FileConfigApi.deleteFileConfigApi
@@ -110,7 +110,7 @@ getList()
<el-button type="primary" v-hasPermi="['infra:file-config:create']" @click="handleCreate">
@@ -13,14 +13,14 @@ import { allSchemas } from './jobLog.data'
const { query } = useRoute()
-const { register, tableObject, methods } = useTable<PageResult<JobLogVO>, JobLogVO>({
+const { register, tableObject, methods } = useTable<JobLogVO>({
getListApi: JobLogApi.getJobLogPageApi,
exportListApi: JobLogApi.exportJobLogApi
const { getList, setSearchParams, exportList } = methods
const getTableList = async () => {
const id = (query.id as unknown as number) && (query.jobId as unknown as number)
- tableObject.paramsObj.params = {
+ tableObject.params = {
jobId: id
await getList()
@@ -14,7 +14,7 @@ import { useRouter } from 'vue-router'
-const { register, tableObject, methods } = useTable<PageResult<JobVO>, JobVO>({
+const { register, tableObject, methods } = useTable<JobVO>({
getListApi: JobApi.getJobPageApi,
delListApi: JobApi.deleteJobApi,
exportListApi: JobApi.exportJobApi
@@ -126,7 +126,7 @@ getList()
<el-button type="primary" v-hasPermi="['infra:job:create']" @click="handleCreate">
@@ -137,7 +137,7 @@ getList()
<Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }}
<el-button type="info" v-hasPermi="['infra:job:query']" @click="handleJobLog">
- <Icon icon="el:zoom-in" class="mr-5px" /> 执行日志
+ <Icon icon="ep:zoom-in" class="mr-5px" /> 执行日志
@@ -79,7 +79,7 @@ const crudSchemas = reactive<CrudSchema[]>([
field: 'action',
- width: '400px',
+ width: '500px',
label: t('table.action'),
form: {
show: false
@@ -20,10 +20,10 @@ const keyListLoad = ref(true)
const keyList = ref<RedisKeyInfo[]>([])
// 基本信息
const readRedisInfo = async () => {
- const data = await RedisApi.redisMonitorInfo()
+ const data = await RedisApi.getCacheApi()
cache.value = data
- loadEchartOptions(cache.value.commandStats)
- const redisKeysInfo = await RedisApi.redisKeysInfo()
+ loadEchartOptions(data.commandStats)
+ const redisKeysInfo = await RedisApi.getKeyDefineListApi()
keyList.value = redisKeysInfo
keyListLoad.value = false //加载完成
@@ -12,7 +12,7 @@ import * as AppApi from '@/api/pay/app'
-const { register, tableObject, methods } = useTable<PageResult<AppVO>, AppVO>({
+const { register, tableObject, methods } = useTable<AppVO>({
getListApi: AppApi.getAppPageApi,
delListApi: AppApi.deleteAppApi,
exportListApi: AppApi.exportAppApi
<el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate">