Commit 9e2e220b69d36e89993cfa17daae3f73ff1cdf2b

Authored by xingyu
1 parent ba96eef5

refactor: vue3 axios api ...

Showing 121 changed files with 1027 additions and 9705 deletions
yudao-ui-admin-vue3/.gitignore
@@ -4,5 +4,5 @@ dist @@ -4,5 +4,5 @@ dist
4 dist-ssr 4 dist-ssr
5 *.local 5 *.local
6 /dist* 6 /dist*
  7 +*-lock.*
7 pnpm-debug 8 pnpm-debug
8 -/frank*  
yudao-ui-admin-vue3/.versionrc deleted
1 -{  
2 - "types": [  
3 - {"type": "chore", "section":"Others", "hidden": false},  
4 - {"type": "revert", "section":"Reverts", "hidden": false},  
5 - {"type": "feat", "section": "Features", "hidden": false},  
6 - {"type": "fix", "section": "Bug Fixes", "hidden": false},  
7 - {"type": "improvement", "section": "Feature Improvements", "hidden": false},  
8 - {"type": "docs", "section":"Docs", "hidden": false},  
9 - {"type": "style", "section":"Styling", "hidden": false},  
10 - {"type": "refactor", "section":"Code Refactoring", "hidden": false},  
11 - {"type": "perf", "section":"Performance Improvements", "hidden": false},  
12 - {"type": "test", "section":"Tests", "hidden": false},  
13 - {"type": "build", "section":"Build System", "hidden": false},  
14 - {"type": "ci", "section":"CI", "hidden":false}  
15 - ]  
16 -}  
17 \ No newline at end of file 0 \ No newline at end of file
yudao-ui-admin-vue3/LICENSE 0 → 100644
  1 +MIT License
  2 +
  3 +Copyright (c) 2021-present Archer
  4 +
  5 +Permission is hereby granted, free of charge, to any person obtaining a copy
  6 +of this software and associated documentation files (the "Software"), to deal
  7 +in the Software without restriction, including without limitation the rights
  8 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9 +copies of the Software, and to permit persons to whom the Software is
  10 +furnished to do so, subject to the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be included in all
  13 +copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  21 +SOFTWARE.
yudao-ui-admin-vue3/package.json
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 "ts:check": "vue-tsc --noEmit", 10 "ts:check": "vue-tsc --noEmit",
11 "build:pro": "vite build --mode pro", 11 "build:pro": "vite build --mode pro",
12 "build:dev": "vite build --mode dev", 12 "build:dev": "vite build --mode dev",
13 - "build:test": "npm run ts:check && vite build --mode test", 13 + "build:test": "pnpm run ts:check && vite build --mode test",
14 "serve:pro": "vite preview --mode pro", 14 "serve:pro": "vite preview --mode pro",
15 "serve:dev": "vite preview --mode dev", 15 "serve:dev": "vite preview --mode dev",
16 "serve:test": "vite preview --mode test", 16 "serve:test": "vite preview --mode test",
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
37 "echarts-wordcloud": "^2.0.0", 37 "echarts-wordcloud": "^2.0.0",
38 "element-plus": "2.2.9", 38 "element-plus": "2.2.9",
39 "intro.js": "^6.0.0", 39 "intro.js": "^6.0.0",
  40 + "jsencrypt": "^3.2.1",
40 "lodash-es": "^4.17.21", 41 "lodash-es": "^4.17.21",
41 "mitt": "^3.0.0", 42 "mitt": "^3.0.0",
42 "nprogress": "^0.2.0", 43 "nprogress": "^0.2.0",
@@ -44,6 +45,7 @@ @@ -44,6 +45,7 @@
44 "pinia-plugin-persist": "^1.0.0", 45 "pinia-plugin-persist": "^1.0.0",
45 "qrcode": "^1.5.1", 46 "qrcode": "^1.5.1",
46 "qs": "^6.11.0", 47 "qs": "^6.11.0",
  48 + "url": "^0.11.0",
47 "vue": "3.2.37", 49 "vue": "3.2.37",
48 "vue-cropper": "^1.0.3", 50 "vue-cropper": "^1.0.3",
49 "vue-i18n": "9.1.10", 51 "vue-i18n": "9.1.10",
@@ -80,7 +82,6 @@ @@ -80,7 +82,6 @@
80 "postcss-html": "^1.5.0", 82 "postcss-html": "^1.5.0",
81 "postcss-less": "^6.0.0", 83 "postcss-less": "^6.0.0",
82 "prettier": "^2.7.1", 84 "prettier": "^2.7.1",
83 - "pretty-quick": "^3.1.3",  
84 "rimraf": "^3.0.2", 85 "rimraf": "^3.0.2",
85 "rollup": "^2.77.0", 86 "rollup": "^2.77.0",
86 "stylelint": "^14.9.1", 87 "stylelint": "^14.9.1",
yudao-ui-admin-vue3/pnpm-lock.yaml deleted
1 -lockfileVersion: 5.4  
2 -  
3 -specifiers:  
4 - '@commitlint/cli': ^17.0.3  
5 - '@commitlint/config-conventional': ^17.0.3  
6 - '@iconify/iconify': ^2.2.1  
7 - '@iconify/json': ^2.1.79  
8 - '@intlify/vite-plugin-vue-i18n': ^5.0.0  
9 - '@purge-icons/generated': ^0.8.1  
10 - '@types/intro.js': ^5.1.0  
11 - '@types/lodash-es': ^4.17.6  
12 - '@types/node': ^18.0.6  
13 - '@types/nprogress': ^0.2.0  
14 - '@types/qrcode': ^1.4.2  
15 - '@types/qs': ^6.9.7  
16 - '@typescript-eslint/eslint-plugin': ^5.30.6  
17 - '@typescript-eslint/parser': ^5.30.6  
18 - '@vitejs/plugin-vue': ^3.0.1  
19 - '@vitejs/plugin-vue-jsx': ^2.0.0  
20 - '@vueuse/core': ^8.9.4  
21 - '@wangeditor/editor': ^5.1.11  
22 - '@wangeditor/editor-for-vue': ^5.1.10  
23 - '@zxcvbn-ts/core': ^2.0.3  
24 - animate.css: ^4.1.1  
25 - autoprefixer: ^10.4.7  
26 - axios: ^0.27.2  
27 - dayjs: ^1.11.3  
28 - echarts: ^5.3.3  
29 - echarts-wordcloud: ^2.0.0  
30 - element-plus: 2.2.9  
31 - eslint: ^8.20.0  
32 - eslint-config-prettier: ^8.5.0  
33 - eslint-define-config: ^1.5.1  
34 - eslint-plugin-prettier: ^4.2.1  
35 - eslint-plugin-vue: ^9.2.0  
36 - intro.js: ^6.0.0  
37 - less: ^4.1.3  
38 - lint-staged: ^13.0.3  
39 - lodash-es: ^4.17.21  
40 - mitt: ^3.0.0  
41 - nprogress: ^0.2.0  
42 - pinia: ^2.0.16  
43 - pinia-plugin-persist: ^1.0.0  
44 - plop: ^3.1.1  
45 - postcss: ^8.4.14  
46 - postcss-html: ^1.5.0  
47 - postcss-less: ^6.0.0  
48 - prettier: ^2.7.1  
49 - pretty-quick: ^3.1.3  
50 - qrcode: ^1.5.1  
51 - qs: ^6.11.0  
52 - rimraf: ^3.0.2  
53 - rollup: ^2.77.0  
54 - stylelint: ^14.9.1  
55 - stylelint-config-html: ^1.1.0  
56 - stylelint-config-prettier: ^9.0.3  
57 - stylelint-config-recommended: ^8.0.0  
58 - stylelint-config-standard: ^26.0.0  
59 - stylelint-order: ^5.0.0  
60 - typescript: 4.7.4  
61 - unplugin-vue-define-options: ^0.6.2  
62 - vite: 3.0.1  
63 - vite-plugin-eslint: ^1.6.1  
64 - vite-plugin-html: ^3.2.0  
65 - vite-plugin-purge-icons: ^0.8.1  
66 - vite-plugin-style-import: ^1.4.1  
67 - vite-plugin-svg-icons: ^2.0.1  
68 - vite-plugin-windicss: ^1.8.7  
69 - vue: 3.2.37  
70 - vue-cropper: ^1.0.3  
71 - vue-i18n: 9.1.10  
72 - vue-router: ^4.1.2  
73 - vue-tsc: ^0.38.8  
74 - vue-types: ^4.1.1  
75 - web-storage-cache: ^1.1.1  
76 - windicss: ^3.5.6  
77 - windicss-analysis: ^0.3.5  
78 -  
79 -dependencies:  
80 - '@iconify/iconify': 2.2.1  
81 - '@vueuse/core': 8.9.4_vue@3.2.37  
82 - '@wangeditor/editor': 5.1.11  
83 - '@wangeditor/editor-for-vue': 5.1.10_wyweaejqxhtklhndhf2ynbwhvm  
84 - '@zxcvbn-ts/core': 2.0.3  
85 - animate.css: 4.1.1  
86 - axios: 0.27.2  
87 - dayjs: 1.11.3  
88 - echarts: 5.3.3  
89 - echarts-wordcloud: 2.0.0_echarts@5.3.3  
90 - element-plus: 2.2.9_vue@3.2.37  
91 - intro.js: 6.0.0  
92 - lodash-es: registry.nlark.com/lodash-es/4.17.21  
93 - mitt: 3.0.0  
94 - nprogress: 0.2.0  
95 - pinia: 2.0.16_j6bzmzd4ujpabbp5objtwxyjp4  
96 - pinia-plugin-persist: 1.0.0_pinia@2.0.16+vue@3.2.37  
97 - qrcode: 1.5.1  
98 - qs: 6.11.0  
99 - vue: 3.2.37  
100 - vue-cropper: 1.0.3  
101 - vue-i18n: 9.1.10_vue@3.2.37  
102 - vue-router: 4.1.2_vue@3.2.37  
103 - vue-types: 4.1.1_vue@3.2.37  
104 - web-storage-cache: 1.1.1  
105 -  
106 -devDependencies:  
107 - '@commitlint/cli': 17.0.3  
108 - '@commitlint/config-conventional': 17.0.3  
109 - '@iconify/json': 2.1.79  
110 - '@intlify/vite-plugin-vue-i18n': 5.0.0_vite@3.0.1+vue-i18n@9.1.10  
111 - '@purge-icons/generated': 0.8.1  
112 - '@types/intro.js': 5.1.0  
113 - '@types/lodash-es': 4.17.6  
114 - '@types/node': 18.0.6  
115 - '@types/nprogress': 0.2.0  
116 - '@types/qrcode': 1.4.2  
117 - '@types/qs': 6.9.7  
118 - '@typescript-eslint/eslint-plugin': 5.30.6_b7n364ggt6o4xlkgyoaww3ph3q  
119 - '@typescript-eslint/parser': 5.30.6_he2ccbldppg44uulnyq4rwocfa  
120 - '@vitejs/plugin-vue': 3.0.1_vite@3.0.1+vue@3.2.37  
121 - '@vitejs/plugin-vue-jsx': 2.0.0_vite@3.0.1+vue@3.2.37  
122 - autoprefixer: 10.4.7_postcss@8.4.14  
123 - eslint: 8.20.0  
124 - eslint-config-prettier: 8.5.0_eslint@8.20.0  
125 - eslint-define-config: 1.5.1  
126 - eslint-plugin-prettier: 4.2.1_g4fztgbwjyq2fvmcscny2sj6fy  
127 - eslint-plugin-vue: 9.2.0_eslint@8.20.0  
128 - less: 4.1.3  
129 - lint-staged: 13.0.3  
130 - plop: 3.1.1  
131 - postcss: 8.4.14  
132 - postcss-html: 1.5.0  
133 - postcss-less: 6.0.0_postcss@8.4.14  
134 - prettier: 2.7.1  
135 - pretty-quick: 3.1.3_prettier@2.7.1  
136 - rimraf: 3.0.2  
137 - rollup: 2.77.0  
138 - stylelint: 14.9.1  
139 - stylelint-config-html: 1.1.0_5rxrxgs7sjazj2ve56ds3kmipi  
140 - stylelint-config-prettier: 9.0.3_stylelint@14.9.1  
141 - stylelint-config-recommended: 8.0.0_stylelint@14.9.1  
142 - stylelint-config-standard: 26.0.0_stylelint@14.9.1  
143 - stylelint-order: 5.0.0_stylelint@14.9.1  
144 - typescript: 4.7.4  
145 - unplugin-vue-define-options: 0.6.2_r5lvqzud3cqtmwu636rwgh22ui  
146 - vite: 3.0.1_less@4.1.3  
147 - vite-plugin-eslint: 1.6.1_eslint@8.20.0+vite@3.0.1  
148 - vite-plugin-html: 3.2.0_vite@3.0.1  
149 - vite-plugin-purge-icons: 0.8.1_vite@3.0.1  
150 - vite-plugin-style-import: 1.4.1_vite@3.0.1  
151 - vite-plugin-svg-icons: 2.0.1_vite@3.0.1  
152 - vite-plugin-windicss: 1.8.7_vite@3.0.1  
153 - vue-tsc: 0.38.8_typescript@4.7.4  
154 - windicss: 3.5.6  
155 - windicss-analysis: 0.3.5  
156 -  
157 -packages:  
158 -  
159 - /@ampproject/remapping/2.1.1:  
160 - resolution: {integrity: sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==}  
161 - engines: {node: '>=6.0.0'}  
162 - dependencies:  
163 - '@jridgewell/trace-mapping': 0.3.4  
164 - dev: true  
165 -  
166 - /@antfu/utils/0.5.2:  
167 - resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==}  
168 - dev: true  
169 -  
170 - /@babel/code-frame/7.16.7:  
171 - resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}  
172 - engines: {node: '>=6.9.0'}  
173 - dependencies:  
174 - '@babel/highlight': 7.16.10  
175 - dev: true  
176 -  
177 - /@babel/code-frame/7.18.6:  
178 - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}  
179 - engines: {node: '>=6.9.0'}  
180 - dependencies:  
181 - '@babel/highlight': 7.18.6  
182 - dev: true  
183 -  
184 - /@babel/compat-data/7.18.8:  
185 - resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==}  
186 - engines: {node: '>=6.9.0'}  
187 - dev: true  
188 -  
189 - /@babel/core/7.18.9:  
190 - resolution: {integrity: sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==}  
191 - engines: {node: '>=6.9.0'}  
192 - dependencies:  
193 - '@ampproject/remapping': 2.1.1  
194 - '@babel/code-frame': 7.18.6  
195 - '@babel/generator': 7.18.9  
196 - '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.9  
197 - '@babel/helper-module-transforms': 7.18.9  
198 - '@babel/helpers': 7.18.9  
199 - '@babel/parser': 7.18.9  
200 - '@babel/template': 7.18.6  
201 - '@babel/traverse': 7.18.9  
202 - '@babel/types': 7.18.9  
203 - convert-source-map: 1.8.0  
204 - debug: 4.3.4  
205 - gensync: 1.0.0-beta.2  
206 - json5: 2.2.1  
207 - semver: 6.3.0  
208 - transitivePeerDependencies:  
209 - - supports-color  
210 - dev: true  
211 -  
212 - /@babel/generator/7.18.9:  
213 - resolution: {integrity: sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==}  
214 - engines: {node: '>=6.9.0'}  
215 - dependencies:  
216 - '@babel/types': 7.18.9  
217 - '@jridgewell/gen-mapping': 0.3.2  
218 - jsesc: 2.5.2  
219 - dev: true  
220 -  
221 - /@babel/helper-annotate-as-pure/7.18.6:  
222 - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}  
223 - engines: {node: '>=6.9.0'}  
224 - dependencies:  
225 - '@babel/types': 7.18.9  
226 - dev: true  
227 -  
228 - /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.9:  
229 - resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==}  
230 - engines: {node: '>=6.9.0'}  
231 - peerDependencies:  
232 - '@babel/core': ^7.0.0  
233 - dependencies:  
234 - '@babel/compat-data': 7.18.8  
235 - '@babel/core': 7.18.9  
236 - '@babel/helper-validator-option': 7.18.6  
237 - browserslist: 4.20.3  
238 - semver: 6.3.0  
239 - dev: true  
240 -  
241 - /@babel/helper-create-class-features-plugin/7.18.9_@babel+core@7.18.9:  
242 - resolution: {integrity: sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==}  
243 - engines: {node: '>=6.9.0'}  
244 - peerDependencies:  
245 - '@babel/core': ^7.0.0  
246 - dependencies:  
247 - '@babel/core': 7.18.9  
248 - '@babel/helper-annotate-as-pure': 7.18.6  
249 - '@babel/helper-environment-visitor': 7.18.9  
250 - '@babel/helper-function-name': 7.18.9  
251 - '@babel/helper-member-expression-to-functions': 7.18.9  
252 - '@babel/helper-optimise-call-expression': 7.18.6  
253 - '@babel/helper-replace-supers': 7.18.9  
254 - '@babel/helper-split-export-declaration': 7.18.6  
255 - transitivePeerDependencies:  
256 - - supports-color  
257 - dev: true  
258 -  
259 - /@babel/helper-environment-visitor/7.16.7:  
260 - resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}  
261 - engines: {node: '>=6.9.0'}  
262 - dependencies:  
263 - '@babel/types': 7.18.9  
264 - dev: true  
265 -  
266 - /@babel/helper-environment-visitor/7.18.9:  
267 - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}  
268 - engines: {node: '>=6.9.0'}  
269 - dev: true  
270 -  
271 - /@babel/helper-function-name/7.17.9:  
272 - resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==}  
273 - engines: {node: '>=6.9.0'}  
274 - dependencies:  
275 - '@babel/template': 7.18.6  
276 - '@babel/types': 7.18.9  
277 - dev: true  
278 -  
279 - /@babel/helper-function-name/7.18.9:  
280 - resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==}  
281 - engines: {node: '>=6.9.0'}  
282 - dependencies:  
283 - '@babel/template': 7.18.6  
284 - '@babel/types': 7.18.9  
285 - dev: true  
286 -  
287 - /@babel/helper-hoist-variables/7.16.7:  
288 - resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}  
289 - engines: {node: '>=6.9.0'}  
290 - dependencies:  
291 - '@babel/types': 7.18.9  
292 - dev: true  
293 -  
294 - /@babel/helper-hoist-variables/7.18.6:  
295 - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}  
296 - engines: {node: '>=6.9.0'}  
297 - dependencies:  
298 - '@babel/types': 7.18.9  
299 - dev: true  
300 -  
301 - /@babel/helper-member-expression-to-functions/7.18.9:  
302 - resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}  
303 - engines: {node: '>=6.9.0'}  
304 - dependencies:  
305 - '@babel/types': 7.18.9  
306 - dev: true  
307 -  
308 - /@babel/helper-module-imports/7.16.7:  
309 - resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}  
310 - engines: {node: '>=6.9.0'}  
311 - dependencies:  
312 - '@babel/types': 7.18.9  
313 - dev: true  
314 -  
315 - /@babel/helper-module-imports/7.18.6:  
316 - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}  
317 - engines: {node: '>=6.9.0'}  
318 - dependencies:  
319 - '@babel/types': 7.18.9  
320 - dev: true  
321 -  
322 - /@babel/helper-module-transforms/7.18.9:  
323 - resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==}  
324 - engines: {node: '>=6.9.0'}  
325 - dependencies:  
326 - '@babel/helper-environment-visitor': 7.18.9  
327 - '@babel/helper-module-imports': 7.18.6  
328 - '@babel/helper-simple-access': 7.18.6  
329 - '@babel/helper-split-export-declaration': 7.18.6  
330 - '@babel/helper-validator-identifier': 7.18.6  
331 - '@babel/template': 7.18.6  
332 - '@babel/traverse': 7.18.9  
333 - '@babel/types': 7.18.9  
334 - transitivePeerDependencies:  
335 - - supports-color  
336 - dev: true  
337 -  
338 - /@babel/helper-optimise-call-expression/7.18.6:  
339 - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}  
340 - engines: {node: '>=6.9.0'}  
341 - dependencies:  
342 - '@babel/types': 7.18.9  
343 - dev: true  
344 -  
345 - /@babel/helper-plugin-utils/7.16.7:  
346 - resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==}  
347 - engines: {node: '>=6.9.0'}  
348 - dev: true  
349 -  
350 - /@babel/helper-plugin-utils/7.18.9:  
351 - resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==}  
352 - engines: {node: '>=6.9.0'}  
353 - dev: true  
354 -  
355 - /@babel/helper-replace-supers/7.18.9:  
356 - resolution: {integrity: sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==}  
357 - engines: {node: '>=6.9.0'}  
358 - dependencies:  
359 - '@babel/helper-environment-visitor': 7.18.9  
360 - '@babel/helper-member-expression-to-functions': 7.18.9  
361 - '@babel/helper-optimise-call-expression': 7.18.6  
362 - '@babel/traverse': 7.18.9  
363 - '@babel/types': 7.18.9  
364 - transitivePeerDependencies:  
365 - - supports-color  
366 - dev: true  
367 -  
368 - /@babel/helper-simple-access/7.18.6:  
369 - resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}  
370 - engines: {node: '>=6.9.0'}  
371 - dependencies:  
372 - '@babel/types': 7.18.9  
373 - dev: true  
374 -  
375 - /@babel/helper-split-export-declaration/7.16.7:  
376 - resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}  
377 - engines: {node: '>=6.9.0'}  
378 - dependencies:  
379 - '@babel/types': 7.18.9  
380 - dev: true  
381 -  
382 - /@babel/helper-split-export-declaration/7.18.6:  
383 - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}  
384 - engines: {node: '>=6.9.0'}  
385 - dependencies:  
386 - '@babel/types': 7.18.9  
387 - dev: true  
388 -  
389 - /@babel/helper-validator-identifier/7.16.7:  
390 - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}  
391 - engines: {node: '>=6.9.0'}  
392 - dev: true  
393 -  
394 - /@babel/helper-validator-identifier/7.18.6:  
395 - resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}  
396 - engines: {node: '>=6.9.0'}  
397 -  
398 - /@babel/helper-validator-option/7.18.6:  
399 - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}  
400 - engines: {node: '>=6.9.0'}  
401 - dev: true  
402 -  
403 - /@babel/helpers/7.18.9:  
404 - resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==}  
405 - engines: {node: '>=6.9.0'}  
406 - dependencies:  
407 - '@babel/template': 7.18.6  
408 - '@babel/traverse': 7.18.9  
409 - '@babel/types': 7.18.9  
410 - transitivePeerDependencies:  
411 - - supports-color  
412 - dev: true  
413 -  
414 - /@babel/highlight/7.16.10:  
415 - resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}  
416 - engines: {node: '>=6.9.0'}  
417 - dependencies:  
418 - '@babel/helper-validator-identifier': 7.16.7  
419 - chalk: 2.4.2  
420 - js-tokens: 4.0.0  
421 - dev: true  
422 -  
423 - /@babel/highlight/7.18.6:  
424 - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}  
425 - engines: {node: '>=6.9.0'}  
426 - dependencies:  
427 - '@babel/helper-validator-identifier': 7.18.6  
428 - chalk: 2.4.2  
429 - js-tokens: 4.0.0  
430 - dev: true  
431 -  
432 - /@babel/parser/7.17.9:  
433 - resolution: {integrity: sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==}  
434 - engines: {node: '>=6.0.0'}  
435 - hasBin: true  
436 - dependencies:  
437 - '@babel/types': 7.18.9  
438 -  
439 - /@babel/parser/7.18.9:  
440 - resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==}  
441 - engines: {node: '>=6.0.0'}  
442 - hasBin: true  
443 - dependencies:  
444 - '@babel/types': 7.18.9  
445 - dev: true  
446 -  
447 - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.18.9:  
448 - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}  
449 - peerDependencies:  
450 - '@babel/core': ^7.0.0-0  
451 - dependencies:  
452 - '@babel/core': 7.18.9  
453 - '@babel/helper-plugin-utils': 7.16.7  
454 - dev: true  
455 -  
456 - /@babel/plugin-syntax-jsx/7.16.5_@babel+core@7.18.9:  
457 - resolution: {integrity: sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==}  
458 - engines: {node: '>=6.9.0'}  
459 - peerDependencies:  
460 - '@babel/core': ^7.0.0-0  
461 - dependencies:  
462 - '@babel/core': 7.18.9  
463 - '@babel/helper-plugin-utils': 7.18.9  
464 - dev: true  
465 -  
466 - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.9:  
467 - resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}  
468 - engines: {node: '>=6.9.0'}  
469 - peerDependencies:  
470 - '@babel/core': ^7.0.0-0  
471 - dependencies:  
472 - '@babel/core': 7.18.9  
473 - '@babel/helper-plugin-utils': 7.18.9  
474 - dev: true  
475 -  
476 - /@babel/plugin-transform-typescript/7.18.8_@babel+core@7.18.9:  
477 - resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==}  
478 - engines: {node: '>=6.9.0'}  
479 - peerDependencies:  
480 - '@babel/core': ^7.0.0-0  
481 - dependencies:  
482 - '@babel/core': 7.18.9  
483 - '@babel/helper-create-class-features-plugin': 7.18.9_@babel+core@7.18.9  
484 - '@babel/helper-plugin-utils': 7.18.9  
485 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.9  
486 - transitivePeerDependencies:  
487 - - supports-color  
488 - dev: true  
489 -  
490 - /@babel/runtime/7.17.2:  
491 - resolution: {integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==}  
492 - engines: {node: '>=6.9.0'}  
493 - dependencies:  
494 - regenerator-runtime: 0.13.9  
495 - dev: false  
496 -  
497 - /@babel/template/7.16.7:  
498 - resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}  
499 - engines: {node: '>=6.9.0'}  
500 - dependencies:  
501 - '@babel/code-frame': 7.18.6  
502 - '@babel/parser': 7.18.9  
503 - '@babel/types': 7.18.9  
504 - dev: true  
505 -  
506 - /@babel/template/7.18.6:  
507 - resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==}  
508 - engines: {node: '>=6.9.0'}  
509 - dependencies:  
510 - '@babel/code-frame': 7.18.6  
511 - '@babel/parser': 7.18.9  
512 - '@babel/types': 7.18.9  
513 - dev: true  
514 -  
515 - /@babel/traverse/7.17.9:  
516 - resolution: {integrity: sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==}  
517 - engines: {node: '>=6.9.0'}  
518 - dependencies:  
519 - '@babel/code-frame': 7.18.6  
520 - '@babel/generator': 7.18.9  
521 - '@babel/helper-environment-visitor': 7.16.7  
522 - '@babel/helper-function-name': 7.17.9  
523 - '@babel/helper-hoist-variables': 7.16.7  
524 - '@babel/helper-split-export-declaration': 7.16.7  
525 - '@babel/parser': 7.18.9  
526 - '@babel/types': 7.18.9  
527 - debug: 4.3.4  
528 - globals: 11.12.0  
529 - transitivePeerDependencies:  
530 - - supports-color  
531 - dev: true  
532 -  
533 - /@babel/traverse/7.18.9:  
534 - resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==}  
535 - engines: {node: '>=6.9.0'}  
536 - dependencies:  
537 - '@babel/code-frame': 7.18.6  
538 - '@babel/generator': 7.18.9  
539 - '@babel/helper-environment-visitor': 7.18.9  
540 - '@babel/helper-function-name': 7.18.9  
541 - '@babel/helper-hoist-variables': 7.18.6  
542 - '@babel/helper-split-export-declaration': 7.18.6  
543 - '@babel/parser': 7.18.9  
544 - '@babel/types': 7.18.9  
545 - debug: 4.3.4  
546 - globals: 11.12.0  
547 - transitivePeerDependencies:  
548 - - supports-color  
549 - dev: true  
550 -  
551 - /@babel/types/7.17.0:  
552 - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}  
553 - engines: {node: '>=6.9.0'}  
554 - dependencies:  
555 - '@babel/helper-validator-identifier': 7.16.7  
556 - to-fast-properties: 2.0.0  
557 - dev: true  
558 -  
559 - /@babel/types/7.18.9:  
560 - resolution: {integrity: sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==}  
561 - engines: {node: '>=6.9.0'}  
562 - dependencies:  
563 - '@babel/helper-validator-identifier': 7.18.6  
564 - to-fast-properties: 2.0.0  
565 -  
566 - /@commitlint/cli/17.0.3:  
567 - resolution: {integrity: sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A==}  
568 - engines: {node: '>=v14'}  
569 - hasBin: true  
570 - dependencies:  
571 - '@commitlint/format': 17.0.0  
572 - '@commitlint/lint': 17.0.3  
573 - '@commitlint/load': 17.0.3  
574 - '@commitlint/read': 17.0.0  
575 - '@commitlint/types': 17.0.0  
576 - execa: 5.1.1  
577 - lodash: 4.17.21  
578 - resolve-from: 5.0.0  
579 - resolve-global: 1.0.0  
580 - yargs: 17.3.1  
581 - transitivePeerDependencies:  
582 - - '@swc/core'  
583 - - '@swc/wasm'  
584 - dev: true  
585 -  
586 - /@commitlint/config-conventional/17.0.3:  
587 - resolution: {integrity: sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A==}  
588 - engines: {node: '>=v14'}  
589 - dependencies:  
590 - conventional-changelog-conventionalcommits: 5.0.0  
591 - dev: true  
592 -  
593 - /@commitlint/config-validator/17.0.3:  
594 - resolution: {integrity: sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ==}  
595 - engines: {node: '>=v14'}  
596 - dependencies:  
597 - '@commitlint/types': 17.0.0  
598 - ajv: 8.11.0  
599 - dev: true  
600 -  
601 - /@commitlint/ensure/17.0.0:  
602 - resolution: {integrity: sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==}  
603 - engines: {node: '>=v14'}  
604 - dependencies:  
605 - '@commitlint/types': 17.0.0  
606 - lodash: 4.17.21  
607 - dev: true  
608 -  
609 - /@commitlint/execute-rule/17.0.0:  
610 - resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==}  
611 - engines: {node: '>=v14'}  
612 - dev: true  
613 -  
614 - /@commitlint/format/17.0.0:  
615 - resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==}  
616 - engines: {node: '>=v14'}  
617 - dependencies:  
618 - '@commitlint/types': 17.0.0  
619 - chalk: 4.1.2  
620 - dev: true  
621 -  
622 - /@commitlint/is-ignored/17.0.3:  
623 - resolution: {integrity: sha512-/wgCXAvPtFTQZxsVxj7owLeRf5wwzcXLaYmrZPR4a87iD4sCvUIRl1/ogYrtOyUmHwWfQsvjqIB4mWE/SqWSnA==}  
624 - engines: {node: '>=v14'}  
625 - dependencies:  
626 - '@commitlint/types': 17.0.0  
627 - semver: 7.3.7  
628 - dev: true  
629 -  
630 - /@commitlint/lint/17.0.3:  
631 - resolution: {integrity: sha512-2o1fk7JUdxBUgszyt41sHC/8Nd5PXNpkmuOo9jvGIjDHzOwXyV0PSdbEVTH3xGz9NEmjohFHr5l+N+T9fcxong==}  
632 - engines: {node: '>=v14'}  
633 - dependencies:  
634 - '@commitlint/is-ignored': 17.0.3  
635 - '@commitlint/parse': 17.0.0  
636 - '@commitlint/rules': 17.0.0  
637 - '@commitlint/types': 17.0.0  
638 - dev: true  
639 -  
640 - /@commitlint/load/17.0.3:  
641 - resolution: {integrity: sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw==}  
642 - engines: {node: '>=v14'}  
643 - dependencies:  
644 - '@commitlint/config-validator': 17.0.3  
645 - '@commitlint/execute-rule': 17.0.0  
646 - '@commitlint/resolve-extends': 17.0.3  
647 - '@commitlint/types': 17.0.0  
648 - '@types/node': 18.0.6  
649 - chalk: 4.1.2  
650 - cosmiconfig: 7.0.1  
651 - cosmiconfig-typescript-loader: 2.0.0_tdn3ypgnfy6bmey2q4hu5jonwi  
652 - lodash: 4.17.21  
653 - resolve-from: 5.0.0  
654 - typescript: 4.7.4  
655 - transitivePeerDependencies:  
656 - - '@swc/core'  
657 - - '@swc/wasm'  
658 - dev: true  
659 -  
660 - /@commitlint/message/17.0.0:  
661 - resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==}  
662 - engines: {node: '>=v14'}  
663 - dev: true  
664 -  
665 - /@commitlint/parse/17.0.0:  
666 - resolution: {integrity: sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==}  
667 - engines: {node: '>=v14'}  
668 - dependencies:  
669 - '@commitlint/types': 17.0.0  
670 - conventional-changelog-angular: 5.0.13  
671 - conventional-commits-parser: 3.2.4  
672 - dev: true  
673 -  
674 - /@commitlint/read/17.0.0:  
675 - resolution: {integrity: sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA==}  
676 - engines: {node: '>=v14'}  
677 - dependencies:  
678 - '@commitlint/top-level': 17.0.0  
679 - '@commitlint/types': 17.0.0  
680 - fs-extra: 10.0.1  
681 - git-raw-commits: 2.0.11  
682 - dev: true  
683 -  
684 - /@commitlint/resolve-extends/17.0.3:  
685 - resolution: {integrity: sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA==}  
686 - engines: {node: '>=v14'}  
687 - dependencies:  
688 - '@commitlint/config-validator': 17.0.3  
689 - '@commitlint/types': 17.0.0  
690 - import-fresh: 3.3.0  
691 - lodash: 4.17.21  
692 - resolve-from: 5.0.0  
693 - resolve-global: 1.0.0  
694 - dev: true  
695 -  
696 - /@commitlint/rules/17.0.0:  
697 - resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==}  
698 - engines: {node: '>=v14'}  
699 - dependencies:  
700 - '@commitlint/ensure': 17.0.0  
701 - '@commitlint/message': 17.0.0  
702 - '@commitlint/to-lines': 17.0.0  
703 - '@commitlint/types': 17.0.0  
704 - execa: 5.1.1  
705 - dev: true  
706 -  
707 - /@commitlint/to-lines/17.0.0:  
708 - resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==}  
709 - engines: {node: '>=v14'}  
710 - dev: true  
711 -  
712 - /@commitlint/top-level/17.0.0:  
713 - resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==}  
714 - engines: {node: '>=v14'}  
715 - dependencies:  
716 - find-up: 5.0.0  
717 - dev: true  
718 -  
719 - /@commitlint/types/17.0.0:  
720 - resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==}  
721 - engines: {node: '>=v14'}  
722 - dependencies:  
723 - chalk: 4.1.2  
724 - dev: true  
725 -  
726 - /@cspotcode/source-map-consumer/0.8.0:  
727 - resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==}  
728 - engines: {node: '>= 12'}  
729 - dev: true  
730 -  
731 - /@cspotcode/source-map-support/0.7.0:  
732 - resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==}  
733 - engines: {node: '>=12'}  
734 - dependencies:  
735 - '@cspotcode/source-map-consumer': 0.8.0  
736 - dev: true  
737 -  
738 - /@csstools/selector-specificity/2.0.1_444rcjjorr3kpoqtvoodsr46pu:  
739 - resolution: {integrity: sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==}  
740 - engines: {node: ^12 || ^14 || >=16}  
741 - peerDependencies:  
742 - postcss: ^8.3  
743 - postcss-selector-parser: ^6.0.10  
744 - dependencies:  
745 - postcss: 8.4.14  
746 - postcss-selector-parser: 6.0.10  
747 - dev: true  
748 -  
749 - /@ctrl/tinycolor/3.4.1:  
750 - resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==}  
751 - engines: {node: '>=10'}  
752 - dev: false  
753 -  
754 - /@element-plus/icons-vue/2.0.6_vue@3.2.37:  
755 - resolution: {integrity: sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==}  
756 - peerDependencies:  
757 - vue: ^3.2.0  
758 - dependencies:  
759 - vue: 3.2.37  
760 - dev: false  
761 -  
762 - /@eslint/eslintrc/1.3.0:  
763 - resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==}  
764 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
765 - dependencies:  
766 - ajv: 6.12.6  
767 - debug: 4.3.4  
768 - espree: 9.3.2  
769 - globals: 13.15.0  
770 - ignore: 5.2.0  
771 - import-fresh: 3.3.0  
772 - js-yaml: 4.1.0  
773 - minimatch: 3.1.2  
774 - strip-json-comments: 3.1.1  
775 - transitivePeerDependencies:  
776 - - supports-color  
777 - dev: true  
778 -  
779 - /@floating-ui/core/0.7.3:  
780 - resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==}  
781 - dev: false  
782 -  
783 - /@floating-ui/dom/0.5.4:  
784 - resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==}  
785 - dependencies:  
786 - '@floating-ui/core': 0.7.3  
787 - dev: false  
788 -  
789 - /@humanwhocodes/config-array/0.9.2:  
790 - resolution: {integrity: sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==}  
791 - engines: {node: '>=10.10.0'}  
792 - dependencies:  
793 - '@humanwhocodes/object-schema': 1.2.1  
794 - debug: 4.3.4  
795 - minimatch: 3.1.2  
796 - transitivePeerDependencies:  
797 - - supports-color  
798 - dev: true  
799 -  
800 - /@humanwhocodes/object-schema/1.2.1:  
801 - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}  
802 - dev: true  
803 -  
804 - /@iconify/iconify/2.1.2:  
805 - 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}  
806 - dependencies:  
807 - cross-fetch: 3.1.5  
808 - transitivePeerDependencies:  
809 - - encoding  
810 - dev: true  
811 -  
812 - /@iconify/iconify/2.2.1:  
813 - 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}  
814 -  
815 - /@iconify/json/2.1.79:  
816 - resolution: {integrity: sha512-4jCX9hRhZmJqeUQ+gTVH867FYdUvBkIZ4UYwWstHXPMIuCVsfqXy5OZn8wDIkEYfvfNy+s1m28/g4PSrWzdUtg==}  
817 - dependencies:  
818 - '@iconify/types': 1.1.0  
819 - pathe: 0.3.1  
820 - dev: true  
821 -  
822 - /@iconify/types/1.1.0:  
823 - resolution: {integrity: sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw==}  
824 - dev: true  
825 -  
826 - /@intlify/bundle-utils/3.1.0_vue-i18n@9.1.10:  
827 - resolution: {integrity: sha512-ghlJ0kR2cCQ8D+poKknC0Xx0ncOt3J3os7CcIAqqIWVF7k6AtGoCDnIru+YzlZcvFRNmP9wEZ7jKliojCdAWNg==}  
828 - engines: {node: '>= 12'}  
829 - peerDependencies:  
830 - petite-vue-i18n: '*'  
831 - vue-i18n: '*'  
832 - peerDependenciesMeta:  
833 - petite-vue-i18n:  
834 - optional: true  
835 - vue-i18n:  
836 - optional: true  
837 - dependencies:  
838 - '@intlify/message-compiler': 9.2.0-beta.39  
839 - '@intlify/shared': 9.2.0-beta.39  
840 - jsonc-eslint-parser: 1.4.1  
841 - source-map: 0.6.1  
842 - vue-i18n: 9.1.10_vue@3.2.37  
843 - yaml-eslint-parser: 0.3.2  
844 - dev: true  
845 -  
846 - /@intlify/core-base/9.1.10:  
847 - resolution: {integrity: sha512-So9CNUavB/IsZ+zBmk2Cv6McQp6vc2wbGi1S0XQmJ8Vz+UFcNn9MFXAe9gY67PreIHrbLsLxDD0cwo1qsxM1Nw==}  
848 - engines: {node: '>= 10'}  
849 - dependencies:  
850 - '@intlify/devtools-if': 9.1.10  
851 - '@intlify/message-compiler': 9.1.10  
852 - '@intlify/message-resolver': 9.1.10  
853 - '@intlify/runtime': 9.1.10  
854 - '@intlify/shared': 9.1.10  
855 - '@intlify/vue-devtools': 9.1.10  
856 -  
857 - /@intlify/devtools-if/9.1.10:  
858 - resolution: {integrity: sha512-SHaKoYu6sog3+Q8js1y3oXLywuogbH1sKuc7NSYkN3GElvXSBaMoCzW+we0ZSFqj/6c7vTNLg9nQ6rxhKqYwnQ==}  
859 - engines: {node: '>= 10'}  
860 - dependencies:  
861 - '@intlify/shared': 9.1.10  
862 -  
863 - /@intlify/message-compiler/9.1.10:  
864 - resolution: {integrity: sha512-+JiJpXff/XTb0EadYwdxOyRTB0hXNd4n1HaJ/a4yuV960uRmPXaklJsedW0LNdcptd/hYUZtCkI7Lc9J5C1gxg==}  
865 - engines: {node: '>= 10'}  
866 - dependencies:  
867 - '@intlify/message-resolver': 9.1.10  
868 - '@intlify/shared': 9.1.10  
869 - source-map: 0.6.1  
870 -  
871 - /@intlify/message-compiler/9.2.0-beta.39:  
872 - resolution: {integrity: sha512-wHb3zzk/H3Wfx9U/SaXVenQ/qq2suqJMl/ppu+IdyGGMZxqC57zFqkgwWxEpqP4DzGeisjHe2myjLZQyV1haEQ==}  
873 - engines: {node: '>= 14'}  
874 - dependencies:  
875 - '@intlify/shared': 9.2.0-beta.39  
876 - source-map: 0.6.1  
877 - dev: true  
878 -  
879 - /@intlify/message-resolver/9.1.10:  
880 - resolution: {integrity: sha512-5YixMG/M05m0cn9+gOzd4EZQTFRUu8RGhzxJbR1DWN21x/Z3bJ8QpDYj6hC4FwBj5uKsRfKpJQ3Xqg98KWoA+w==}  
881 - engines: {node: '>= 10'}  
882 -  
883 - /@intlify/runtime/9.1.10:  
884 - resolution: {integrity: sha512-7QsuByNzpe3Gfmhwq6hzgXcMPpxz8Zxb/XFI6s9lQdPLPe5Lgw4U1ovRPZTOs6Y2hwitR3j/HD8BJNGWpJnOFA==}  
885 - engines: {node: '>= 10'}  
886 - dependencies:  
887 - '@intlify/message-compiler': 9.1.10  
888 - '@intlify/message-resolver': 9.1.10  
889 - '@intlify/shared': 9.1.10  
890 -  
891 - /@intlify/shared/9.1.10:  
892 - resolution: {integrity: sha512-Om54xJeo1Vw+K1+wHYyXngE8cAbrxZHpWjYzMR9wCkqbhGtRV5VLhVc214Ze2YatPrWlS2WSMOWXR8JktX/IgA==}  
893 - engines: {node: '>= 10'}  
894 -  
895 - /@intlify/shared/9.2.0-beta.39:  
896 - resolution: {integrity: sha512-FqzpkZVk/cTsywWc4mVbI2/fDQwYm8oXVwi7yuassiLps3yJK7P0s6grZaaXIX8gMODNLjJtJPd2KEOSj1lUyw==}  
897 - engines: {node: '>= 14'}  
898 - dev: true  
899 -  
900 - /@intlify/vite-plugin-vue-i18n/5.0.0_vite@3.0.1+vue-i18n@9.1.10:  
901 - resolution: {integrity: sha512-49W7y2b0m6Cg6qGoBkjdNgxyzFx3iOSbnxvDaWcN65raaceJVuwCwxXX1SqJbjHTg32rpTFi4jSlroqAV9Rr0w==}  
902 - engines: {node: '>= 14.6'}  
903 - peerDependencies:  
904 - petite-vue-i18n: '*'  
905 - vite: ^2.9.0 || ^3.0.0  
906 - vue-i18n: '*'  
907 - peerDependenciesMeta:  
908 - petite-vue-i18n:  
909 - optional: true  
910 - vite:  
911 - optional: true  
912 - vue-i18n:  
913 - optional: true  
914 - dependencies:  
915 - '@intlify/bundle-utils': 3.1.0_vue-i18n@9.1.10  
916 - '@intlify/shared': 9.2.0-beta.39  
917 - '@rollup/pluginutils': 4.2.1  
918 - debug: 4.3.4  
919 - fast-glob: 3.2.11  
920 - source-map: 0.6.1  
921 - vite: 3.0.1_less@4.1.3  
922 - vue-i18n: 9.1.10_vue@3.2.37  
923 - transitivePeerDependencies:  
924 - - supports-color  
925 - dev: true  
926 -  
927 - /@intlify/vue-devtools/9.1.10:  
928 - resolution: {integrity: sha512-5l3qYARVbkWAkagLu1XbDUWRJSL8br1Dj60wgMaKB0+HswVsrR6LloYZTg7ozyvM621V6+zsmwzbQxbVQyrytQ==}  
929 - engines: {node: '>= 10'}  
930 - dependencies:  
931 - '@intlify/message-resolver': 9.1.10  
932 - '@intlify/runtime': 9.1.10  
933 - '@intlify/shared': 9.1.10  
934 -  
935 - /@jridgewell/gen-mapping/0.3.2:  
936 - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}  
937 - engines: {node: '>=6.0.0'}  
938 - dependencies:  
939 - '@jridgewell/set-array': 1.1.2  
940 - '@jridgewell/sourcemap-codec': 1.4.11  
941 - '@jridgewell/trace-mapping': 0.3.14  
942 - dev: true  
943 -  
944 - /@jridgewell/resolve-uri/3.0.5:  
945 - resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==}  
946 - engines: {node: '>=6.0.0'}  
947 - dev: true  
948 -  
949 - /@jridgewell/set-array/1.1.2:  
950 - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}  
951 - engines: {node: '>=6.0.0'}  
952 - dev: true  
953 -  
954 - /@jridgewell/sourcemap-codec/1.4.11:  
955 - resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==}  
956 - dev: true  
957 -  
958 - /@jridgewell/trace-mapping/0.3.14:  
959 - resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==}  
960 - dependencies:  
961 - '@jridgewell/resolve-uri': 3.0.5  
962 - '@jridgewell/sourcemap-codec': 1.4.11  
963 - dev: true  
964 -  
965 - /@jridgewell/trace-mapping/0.3.4:  
966 - resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==}  
967 - dependencies:  
968 - '@jridgewell/resolve-uri': 3.0.5  
969 - '@jridgewell/sourcemap-codec': 1.4.11  
970 - dev: true  
971 -  
972 - /@nodelib/fs.scandir/2.1.5:  
973 - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}  
974 - engines: {node: '>= 8'}  
975 - dependencies:  
976 - '@nodelib/fs.stat': 2.0.5  
977 - run-parallel: 1.2.0  
978 - dev: true  
979 -  
980 - /@nodelib/fs.stat/2.0.5:  
981 - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}  
982 - engines: {node: '>= 8'}  
983 - dev: true  
984 -  
985 - /@nodelib/fs.walk/1.2.8:  
986 - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}  
987 - engines: {node: '>= 8'}  
988 - dependencies:  
989 - '@nodelib/fs.scandir': 2.1.5  
990 - fastq: 1.13.0  
991 - dev: true  
992 -  
993 - /@polka/url/1.0.0-next.21:  
994 - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}  
995 - dev: true  
996 -  
997 - /@purge-icons/core/0.8.0:  
998 - 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}  
999 - dependencies:  
1000 - '@iconify/iconify': 2.1.2  
1001 - axios: 0.26.1_debug@4.3.4  
1002 - debug: 4.3.4  
1003 - fast-glob: 3.2.11  
1004 - fs-extra: 10.0.1  
1005 - transitivePeerDependencies:  
1006 - - encoding  
1007 - - supports-color  
1008 - dev: true  
1009 -  
1010 - /@purge-icons/generated/0.8.1:  
1011 - 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}  
1012 - dependencies:  
1013 - '@iconify/iconify': 2.2.1  
1014 - dev: true  
1015 -  
1016 - /@rollup/pluginutils/4.2.0:  
1017 - resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==}  
1018 - engines: {node: '>= 8.0.0'}  
1019 - dependencies:  
1020 - estree-walker: 2.0.2  
1021 - picomatch: 2.3.1  
1022 - dev: true  
1023 -  
1024 - /@rollup/pluginutils/4.2.1:  
1025 - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}  
1026 - engines: {node: '>= 8.0.0'}  
1027 - dependencies:  
1028 - estree-walker: 2.0.2  
1029 - picomatch: 2.3.1  
1030 - dev: true  
1031 -  
1032 - /@sxzz/popperjs-es/2.11.7:  
1033 - resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}  
1034 - dev: false  
1035 -  
1036 - /@transloadit/prettier-bytes/0.0.7:  
1037 - resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}  
1038 - dev: false  
1039 -  
1040 - /@trysound/sax/0.2.0:  
1041 - 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}  
1042 - engines: {node: '>=10.13.0'}  
1043 - dev: true  
1044 -  
1045 - /@tsconfig/node10/1.0.8:  
1046 - resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}  
1047 - dev: true  
1048 -  
1049 - /@tsconfig/node12/1.0.9:  
1050 - resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==}  
1051 - dev: true  
1052 -  
1053 - /@tsconfig/node14/1.0.1:  
1054 - resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==}  
1055 - dev: true  
1056 -  
1057 - /@tsconfig/node16/1.0.2:  
1058 - resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==}  
1059 - dev: true  
1060 -  
1061 - /@types/eslint/8.4.2:  
1062 - resolution: {integrity: sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==}  
1063 - dependencies:  
1064 - '@types/estree': 0.0.51  
1065 - '@types/json-schema': 7.0.9  
1066 - dev: true  
1067 -  
1068 - /@types/estree/0.0.51:  
1069 - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}  
1070 - dev: true  
1071 -  
1072 - /@types/event-emitter/0.3.3:  
1073 - resolution: {integrity: sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==}  
1074 - dev: false  
1075 -  
1076 - /@types/fined/1.1.3:  
1077 - resolution: {integrity: sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==}  
1078 - dev: true  
1079 -  
1080 - /@types/inquirer/8.2.1:  
1081 - resolution: {integrity: sha512-wKW3SKIUMmltbykg4I5JzCVzUhkuD9trD6efAmYgN2MrSntY0SMRQzEnD3mkyJ/rv9NLbTC7g3hKKE86YwEDLw==}  
1082 - dependencies:  
1083 - '@types/through': 0.0.30  
1084 - rxjs: 7.5.5  
1085 - dev: true  
1086 -  
1087 - /@types/intro.js/5.1.0:  
1088 - resolution: {integrity: sha512-XHkD6t7f3bn8B2//kOlznRzmk15KvsRkFpY6i8em/eDphblQ8QHbCiW+6OPjX7CxI0aVNVJK6Yamb2h2KMmFdA==}  
1089 - dev: true  
1090 -  
1091 - /@types/json-schema/7.0.9:  
1092 - resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==}  
1093 - dev: true  
1094 -  
1095 - /@types/liftoff/4.0.0:  
1096 - resolution: {integrity: sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==}  
1097 - dependencies:  
1098 - '@types/fined': 1.1.3  
1099 - '@types/node': 18.0.6  
1100 - dev: true  
1101 -  
1102 - /@types/lodash-es/4.17.6:  
1103 - 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}  
1104 - dependencies:  
1105 - '@types/lodash': 4.14.178  
1106 -  
1107 - /@types/lodash/4.14.178:  
1108 - resolution: {integrity: sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/lodash/-/lodash-4.14.178.tgz}  
1109 -  
1110 - /@types/lodash/4.14.182:  
1111 - resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==}  
1112 - dev: false  
1113 -  
1114 - /@types/minimatch/3.0.5:  
1115 - 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}  
1116 - dev: true  
1117 -  
1118 - /@types/minimist/1.2.2:  
1119 - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}  
1120 - dev: true  
1121 -  
1122 - /@types/node/18.0.6:  
1123 - resolution: {integrity: sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==}  
1124 - dev: true  
1125 -  
1126 - /@types/normalize-package-data/2.4.1:  
1127 - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}  
1128 - dev: true  
1129 -  
1130 - /@types/nprogress/0.2.0:  
1131 - 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}  
1132 - dev: true  
1133 -  
1134 - /@types/parse-json/4.0.0:  
1135 - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}  
1136 - dev: true  
1137 -  
1138 - /@types/qrcode/1.4.2:  
1139 - 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}  
1140 - dependencies:  
1141 - '@types/node': 18.0.6  
1142 - dev: true  
1143 -  
1144 - /@types/qs/6.9.7:  
1145 - 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}  
1146 - dev: true  
1147 -  
1148 - /@types/svgo/2.6.1:  
1149 - 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}  
1150 - dependencies:  
1151 - '@types/node': 18.0.6  
1152 - dev: true  
1153 -  
1154 - /@types/through/0.0.30:  
1155 - resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==}  
1156 - dependencies:  
1157 - '@types/node': 18.0.6  
1158 - dev: true  
1159 -  
1160 - /@types/web-bluetooth/0.0.14:  
1161 - resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==}  
1162 - dev: false  
1163 -  
1164 - /@typescript-eslint/eslint-plugin/5.30.6_b7n364ggt6o4xlkgyoaww3ph3q:  
1165 - resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==}  
1166 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1167 - peerDependencies:  
1168 - '@typescript-eslint/parser': ^5.0.0  
1169 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0  
1170 - typescript: '*'  
1171 - peerDependenciesMeta:  
1172 - typescript:  
1173 - optional: true  
1174 - dependencies:  
1175 - '@typescript-eslint/parser': 5.30.6_he2ccbldppg44uulnyq4rwocfa  
1176 - '@typescript-eslint/scope-manager': 5.30.6  
1177 - '@typescript-eslint/type-utils': 5.30.6_he2ccbldppg44uulnyq4rwocfa  
1178 - '@typescript-eslint/utils': 5.30.6_he2ccbldppg44uulnyq4rwocfa  
1179 - debug: 4.3.4  
1180 - eslint: 8.20.0  
1181 - functional-red-black-tree: 1.0.1  
1182 - ignore: 5.2.0  
1183 - regexpp: 3.2.0  
1184 - semver: 7.3.7  
1185 - tsutils: 3.21.0_typescript@4.7.4  
1186 - typescript: 4.7.4  
1187 - transitivePeerDependencies:  
1188 - - supports-color  
1189 - dev: true  
1190 -  
1191 - /@typescript-eslint/parser/5.30.6_he2ccbldppg44uulnyq4rwocfa:  
1192 - resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==}  
1193 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1194 - peerDependencies:  
1195 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0  
1196 - typescript: '*'  
1197 - peerDependenciesMeta:  
1198 - typescript:  
1199 - optional: true  
1200 - dependencies:  
1201 - '@typescript-eslint/scope-manager': 5.30.6  
1202 - '@typescript-eslint/types': 5.30.6  
1203 - '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4  
1204 - debug: 4.3.4  
1205 - eslint: 8.20.0  
1206 - typescript: 4.7.4  
1207 - transitivePeerDependencies:  
1208 - - supports-color  
1209 - dev: true  
1210 -  
1211 - /@typescript-eslint/scope-manager/5.30.6:  
1212 - resolution: {integrity: sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==}  
1213 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1214 - dependencies:  
1215 - '@typescript-eslint/types': 5.30.6  
1216 - '@typescript-eslint/visitor-keys': 5.30.6  
1217 - dev: true  
1218 -  
1219 - /@typescript-eslint/type-utils/5.30.6_he2ccbldppg44uulnyq4rwocfa:  
1220 - resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==}  
1221 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1222 - peerDependencies:  
1223 - eslint: '*'  
1224 - typescript: '*'  
1225 - peerDependenciesMeta:  
1226 - typescript:  
1227 - optional: true  
1228 - dependencies:  
1229 - '@typescript-eslint/utils': 5.30.6_he2ccbldppg44uulnyq4rwocfa  
1230 - debug: 4.3.4  
1231 - eslint: 8.20.0  
1232 - tsutils: 3.21.0_typescript@4.7.4  
1233 - typescript: 4.7.4  
1234 - transitivePeerDependencies:  
1235 - - supports-color  
1236 - dev: true  
1237 -  
1238 - /@typescript-eslint/types/5.30.6:  
1239 - resolution: {integrity: sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==}  
1240 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1241 - dev: true  
1242 -  
1243 - /@typescript-eslint/typescript-estree/5.30.6_typescript@4.7.4:  
1244 - resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==}  
1245 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1246 - peerDependencies:  
1247 - typescript: '*'  
1248 - peerDependenciesMeta:  
1249 - typescript:  
1250 - optional: true  
1251 - dependencies:  
1252 - '@typescript-eslint/types': 5.30.6  
1253 - '@typescript-eslint/visitor-keys': 5.30.6  
1254 - debug: 4.3.4  
1255 - globby: 11.1.0  
1256 - is-glob: 4.0.3  
1257 - semver: 7.3.7  
1258 - tsutils: 3.21.0_typescript@4.7.4  
1259 - typescript: 4.7.4  
1260 - transitivePeerDependencies:  
1261 - - supports-color  
1262 - dev: true  
1263 -  
1264 - /@typescript-eslint/utils/5.30.6_he2ccbldppg44uulnyq4rwocfa:  
1265 - resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==}  
1266 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1267 - peerDependencies:  
1268 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0  
1269 - dependencies:  
1270 - '@types/json-schema': 7.0.9  
1271 - '@typescript-eslint/scope-manager': 5.30.6  
1272 - '@typescript-eslint/types': 5.30.6  
1273 - '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4  
1274 - eslint: 8.20.0  
1275 - eslint-scope: 5.1.1  
1276 - eslint-utils: 3.0.0_eslint@8.20.0  
1277 - transitivePeerDependencies:  
1278 - - supports-color  
1279 - - typescript  
1280 - dev: true  
1281 -  
1282 - /@typescript-eslint/visitor-keys/5.30.6:  
1283 - resolution: {integrity: sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==}  
1284 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
1285 - dependencies:  
1286 - '@typescript-eslint/types': 5.30.6  
1287 - eslint-visitor-keys: 3.3.0  
1288 - dev: true  
1289 -  
1290 - /@uppy/companion-client/2.0.4:  
1291 - resolution: {integrity: sha512-Uc3bJzgSdvB+wKYoAbmhY7jv5DlziZQdK0w+5Eku2M93xcOictgJPoti94rj/PtZRH3gyszDkwACERs/bfbI7g==}  
1292 - dependencies:  
1293 - '@uppy/utils': 4.0.5  
1294 - namespace-emitter: 2.0.1  
1295 - dev: false  
1296 -  
1297 - /@uppy/core/2.1.4:  
1298 - resolution: {integrity: sha512-tVC44D66BbISD3gJaqH3xUrVEP5Pah0cDQV98sI3N6W6yMSOW4m3xuhqhcWvEd4DolKCp0vyvc/pW6rsQbMVRA==}  
1299 - dependencies:  
1300 - '@transloadit/prettier-bytes': 0.0.7  
1301 - '@uppy/store-default': 2.0.3  
1302 - '@uppy/utils': 4.0.5  
1303 - lodash.throttle: 4.1.1  
1304 - mime-match: 1.0.2  
1305 - namespace-emitter: 2.0.1  
1306 - nanoid: 3.3.4  
1307 - preact: 10.6.5  
1308 - dev: false  
1309 -  
1310 - /@uppy/store-default/2.0.3:  
1311 - resolution: {integrity: sha512-2BGlN1sW0cFv4rOqTK8dfSg579S984N1HxCJxLFqeW9nWD6zd/O8Omyd85tbxGQ+FLZLTmLOm/feD0YeCBMahg==}  
1312 - dev: false  
1313 -  
1314 - /@uppy/utils/4.0.5:  
1315 - resolution: {integrity: sha512-uRv921A69UMjuWCLSC5tKXuIVoMOROVpFstIAQv5CoiCOCXyofcWpvAqELT7qlQJ5VRWha3uF5d/Z94SNnwxew==}  
1316 - dependencies:  
1317 - lodash.throttle: 4.1.1  
1318 - dev: false  
1319 -  
1320 - /@uppy/xhr-upload/2.0.7_@uppy+core@2.1.4:  
1321 - resolution: {integrity: sha512-bzCc654B0HfNmL4BIr7gGTvg2pQBucYgPmAb4ST7jGyWlEJWbSxMXR/19zvISQzpJ6v1uP6q2ppgxGMqNdj/rA==}  
1322 - peerDependencies:  
1323 - '@uppy/core': ^2.1.4  
1324 - dependencies:  
1325 - '@uppy/companion-client': 2.0.4  
1326 - '@uppy/core': 2.1.4  
1327 - '@uppy/utils': 4.0.5  
1328 - nanoid: 3.3.4  
1329 - dev: false  
1330 -  
1331 - /@vitejs/plugin-vue-jsx/2.0.0_vite@3.0.1+vue@3.2.37:  
1332 - resolution: {integrity: sha512-WF9ApZ/ivyyW3volQfu0Td0KNPhcccYEaRNzNY1NxRLVJQLSX0nFqquv3e2g7MF74p1XZK4bGtDL2y5i5O5+1A==}  
1333 - engines: {node: '>=14.18.0'}  
1334 - peerDependencies:  
1335 - vite: ^3.0.0  
1336 - vue: ^3.0.0  
1337 - dependencies:  
1338 - '@babel/core': 7.18.9  
1339 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.9  
1340 - '@babel/plugin-transform-typescript': 7.18.8_@babel+core@7.18.9  
1341 - '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.9  
1342 - vite: 3.0.1_less@4.1.3  
1343 - vue: 3.2.37  
1344 - transitivePeerDependencies:  
1345 - - supports-color  
1346 - dev: true  
1347 -  
1348 - /@vitejs/plugin-vue/3.0.1_vite@3.0.1+vue@3.2.37:  
1349 - resolution: {integrity: sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==}  
1350 - engines: {node: ^14.18.0 || >=16.0.0}  
1351 - peerDependencies:  
1352 - vite: ^3.0.0  
1353 - vue: ^3.2.25  
1354 - dependencies:  
1355 - vite: 3.0.1_less@4.1.3  
1356 - vue: 3.2.37  
1357 - dev: true  
1358 -  
1359 - /@volar/code-gen/0.38.8:  
1360 - resolution: {integrity: sha512-e37jd+JwNjBpWiBblsdmYMbJ9bELiuj2yZrsXv1IVKpYNSfvS92ZiYjJqVXHUwpzNeZjFG0RCd5nTpbiebwANw==}  
1361 - dependencies:  
1362 - '@volar/source-map': 0.38.8  
1363 - dev: true  
1364 -  
1365 - /@volar/source-map/0.38.8:  
1366 - resolution: {integrity: sha512-JZvpjW/z2U3wq5wvwcTounPrRAZuSl4hlVKr3y7y72bKr++6W05OnX7fl/ddw39G/wLHdI2ag5+4JWsSd/EYhg==}  
1367 - dev: true  
1368 -  
1369 - /@volar/vue-code-gen/0.38.8:  
1370 - resolution: {integrity: sha512-iQVNmIu1TqnqTko+l9yeylmZipZ8zNH20XZAK9+48hkv2fEQnnJn5AI2W9Zb2M5DkGMpbYiJk9Fq1vm51YY1+g==}  
1371 - dependencies:  
1372 - '@volar/code-gen': 0.38.8  
1373 - '@volar/source-map': 0.38.8  
1374 - '@vue/compiler-core': 3.2.37  
1375 - '@vue/compiler-dom': 3.2.37  
1376 - '@vue/shared': 3.2.37  
1377 - dev: true  
1378 -  
1379 - /@volar/vue-typescript/0.38.8:  
1380 - resolution: {integrity: sha512-7WeFt5piz9I6FKw2cQQCWm+75MxS6xCOGm300iu+hJORlroN2dwWbwj97pQnDGbjQbftCRplUYf0GqmhcOsanQ==}  
1381 - dependencies:  
1382 - '@volar/code-gen': 0.38.8  
1383 - '@volar/source-map': 0.38.8  
1384 - '@volar/vue-code-gen': 0.38.8  
1385 - '@vue/compiler-sfc': 3.2.37  
1386 - '@vue/reactivity': 3.2.37  
1387 - dev: true  
1388 -  
1389 - /@vue/babel-helper-vue-transform-on/1.0.2:  
1390 - resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==}  
1391 - dev: true  
1392 -  
1393 - /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.18.9:  
1394 - resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==}  
1395 - dependencies:  
1396 - '@babel/helper-module-imports': 7.16.7  
1397 - '@babel/plugin-syntax-jsx': 7.16.5_@babel+core@7.18.9  
1398 - '@babel/template': 7.16.7  
1399 - '@babel/traverse': 7.17.9  
1400 - '@babel/types': 7.17.0  
1401 - '@vue/babel-helper-vue-transform-on': 1.0.2  
1402 - camelcase: 6.2.1  
1403 - html-tags: 3.2.0  
1404 - svg-tags: 1.0.0  
1405 - transitivePeerDependencies:  
1406 - - '@babel/core'  
1407 - - supports-color  
1408 - dev: true  
1409 -  
1410 - /@vue/compiler-core/3.2.37:  
1411 - resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==}  
1412 - dependencies:  
1413 - '@babel/parser': 7.17.9  
1414 - '@vue/shared': 3.2.37  
1415 - estree-walker: 2.0.2  
1416 - source-map: 0.6.1  
1417 -  
1418 - /@vue/compiler-dom/3.2.37:  
1419 - resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==}  
1420 - dependencies:  
1421 - '@vue/compiler-core': 3.2.37  
1422 - '@vue/shared': 3.2.37  
1423 -  
1424 - /@vue/compiler-sfc/3.2.37:  
1425 - resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==}  
1426 - dependencies:  
1427 - '@babel/parser': 7.17.9  
1428 - '@vue/compiler-core': 3.2.37  
1429 - '@vue/compiler-dom': 3.2.37  
1430 - '@vue/compiler-ssr': 3.2.37  
1431 - '@vue/reactivity-transform': 3.2.37  
1432 - '@vue/shared': 3.2.37  
1433 - estree-walker: 2.0.2  
1434 - magic-string: 0.25.7  
1435 - postcss: 8.4.14  
1436 - source-map: 0.6.1  
1437 -  
1438 - /@vue/compiler-ssr/3.2.37:  
1439 - resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==}  
1440 - dependencies:  
1441 - '@vue/compiler-dom': 3.2.37  
1442 - '@vue/shared': 3.2.37  
1443 -  
1444 - /@vue/devtools-api/6.1.4:  
1445 - resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==}  
1446 -  
1447 - /@vue/reactivity-transform/3.2.37:  
1448 - resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==}  
1449 - dependencies:  
1450 - '@babel/parser': 7.17.9  
1451 - '@vue/compiler-core': 3.2.37  
1452 - '@vue/shared': 3.2.37  
1453 - estree-walker: 2.0.2  
1454 - magic-string: 0.25.7  
1455 -  
1456 - /@vue/reactivity/3.2.37:  
1457 - resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==}  
1458 - dependencies:  
1459 - '@vue/shared': 3.2.37  
1460 -  
1461 - /@vue/runtime-core/3.2.37:  
1462 - resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==}  
1463 - dependencies:  
1464 - '@vue/reactivity': 3.2.37  
1465 - '@vue/shared': 3.2.37  
1466 -  
1467 - /@vue/runtime-dom/3.2.37:  
1468 - resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==}  
1469 - dependencies:  
1470 - '@vue/runtime-core': 3.2.37  
1471 - '@vue/shared': 3.2.37  
1472 - csstype: 2.6.19  
1473 -  
1474 - /@vue/server-renderer/3.2.37_vue@3.2.37:  
1475 - resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==}  
1476 - peerDependencies:  
1477 - vue: 3.2.37  
1478 - dependencies:  
1479 - '@vue/compiler-ssr': 3.2.37  
1480 - '@vue/shared': 3.2.37  
1481 - vue: 3.2.37  
1482 -  
1483 - /@vue/shared/3.2.37:  
1484 - resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}  
1485 -  
1486 - /@vueuse/core/8.9.4_vue@3.2.37:  
1487 - resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==}  
1488 - peerDependencies:  
1489 - '@vue/composition-api': ^1.1.0  
1490 - vue: ^2.6.0 || ^3.2.0  
1491 - peerDependenciesMeta:  
1492 - '@vue/composition-api':  
1493 - optional: true  
1494 - vue:  
1495 - optional: true  
1496 - dependencies:  
1497 - '@types/web-bluetooth': 0.0.14  
1498 - '@vueuse/metadata': 8.9.4  
1499 - '@vueuse/shared': 8.9.4_vue@3.2.37  
1500 - vue: 3.2.37  
1501 - vue-demi: 0.12.1_vue@3.2.37  
1502 - dev: false  
1503 -  
1504 - /@vueuse/metadata/8.9.4:  
1505 - resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==}  
1506 - dev: false  
1507 -  
1508 - /@vueuse/shared/8.9.4_vue@3.2.37:  
1509 - resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==}  
1510 - peerDependencies:  
1511 - '@vue/composition-api': ^1.1.0  
1512 - vue: ^2.6.0 || ^3.2.0  
1513 - peerDependenciesMeta:  
1514 - '@vue/composition-api':  
1515 - optional: true  
1516 - vue:  
1517 - optional: true  
1518 - dependencies:  
1519 - vue: 3.2.37  
1520 - vue-demi: 0.12.1_vue@3.2.37  
1521 - dev: false  
1522 -  
1523 - /@wangeditor/basic-modules/1.1.3_wc2s6ucqguq7ye7cv5gs4ie3pa:  
1524 - resolution: {integrity: sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==}  
1525 - peerDependencies:  
1526 - '@wangeditor/core': 1.x  
1527 - dom7: ^3.0.0  
1528 - lodash.throttle: ^4.1.1  
1529 - nanoid: ^3.2.0  
1530 - slate: ^0.72.0  
1531 - snabbdom: ^3.1.0  
1532 - dependencies:  
1533 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1534 - dom7: 3.0.0  
1535 - is-url: 1.2.4  
1536 - lodash.throttle: 4.1.1  
1537 - nanoid: 3.3.4  
1538 - slate: 0.72.8  
1539 - snabbdom: 3.3.1  
1540 - dev: false  
1541 -  
1542 - /@wangeditor/code-highlight/1.0.2_f4mxrtym3fqiukj5pvowt5wic4:  
1543 - resolution: {integrity: sha512-SCtOcUxjKqIso/LSxGSOaYr3G6MC2En0gNTyHIMCG928T0fo0ufaqp/vIXKQzVL2Y+X/CSAOB2EbrFlgGvr0AQ==}  
1544 - peerDependencies:  
1545 - '@wangeditor/core': 1.x  
1546 - dom7: ^3.0.0  
1547 - slate: ^0.72.0  
1548 - snabbdom: ^3.1.0  
1549 - dependencies:  
1550 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1551 - dom7: 3.0.0  
1552 - prismjs: 1.26.0  
1553 - slate: 0.72.8  
1554 - snabbdom: 3.3.1  
1555 - dev: false  
1556 -  
1557 - /@wangeditor/core/1.1.8_bevuzdaogp7zvgcbkum7pdqkgy:  
1558 - resolution: {integrity: sha512-TfCtAXfL/bgmUKQbtLEaboK7wH49G7BQqYoQsylZ7MyD1LhYnVLXp/4RzJbuIr4cV9Bs1Ncz1JoZ9tqDe6WImw==}  
1559 - peerDependencies:  
1560 - '@uppy/core': ^2.1.1  
1561 - '@uppy/xhr-upload': ^2.0.3  
1562 - dom7: ^3.0.0  
1563 - is-hotkey: ^0.2.0  
1564 - lodash.camelcase: ^4.3.0  
1565 - lodash.clonedeep: ^4.5.0  
1566 - lodash.debounce: ^4.0.8  
1567 - lodash.foreach: ^4.5.0  
1568 - lodash.isequal: ^4.5.0  
1569 - lodash.throttle: ^4.1.1  
1570 - lodash.toarray: ^4.4.0  
1571 - nanoid: ^3.2.0  
1572 - slate: ^0.72.0  
1573 - snabbdom: ^3.1.0  
1574 - dependencies:  
1575 - '@types/event-emitter': 0.3.3  
1576 - '@uppy/core': 2.1.4  
1577 - '@uppy/xhr-upload': 2.0.7_@uppy+core@2.1.4  
1578 - dom7: 3.0.0  
1579 - event-emitter: 0.3.5  
1580 - html-void-elements: 2.0.1  
1581 - i18next: 20.6.1  
1582 - is-hotkey: 0.2.0  
1583 - lodash.camelcase: 4.3.0  
1584 - lodash.clonedeep: 4.5.0  
1585 - lodash.debounce: 4.0.8  
1586 - lodash.foreach: 4.5.0  
1587 - lodash.isequal: 4.5.0  
1588 - lodash.throttle: 4.1.1  
1589 - lodash.toarray: 4.4.0  
1590 - nanoid: 3.3.4  
1591 - scroll-into-view-if-needed: 2.2.29  
1592 - slate: 0.72.8  
1593 - slate-history: 0.66.0_slate@0.72.8  
1594 - snabbdom: 3.3.1  
1595 - dev: false  
1596 -  
1597 - /@wangeditor/editor-for-vue/5.1.10_wyweaejqxhtklhndhf2ynbwhvm:  
1598 - resolution: {integrity: sha512-OdtMnMt0HpYriY1+Efo3KHviUB5zwlZIaHypNw5MPRn8uFq3MFLET5u8pbB/PiEF5Ff88YAp7T9Xw1dvJzT8sA==}  
1599 - peerDependencies:  
1600 - '@wangeditor/editor': '>=5.0.0'  
1601 - vue: ^3.0.5  
1602 - dependencies:  
1603 - '@wangeditor/editor': 5.1.11  
1604 - vue: 3.2.37  
1605 - dev: false  
1606 -  
1607 - /@wangeditor/editor/5.1.11:  
1608 - resolution: {integrity: sha512-jJbY2OirSy16UY9OkOCBw0DhQpOzTIGRLYL724wYSWf9nO6DpO21bemmEoDDF5zULtabEm3w0dvSxTSVd7amLw==}  
1609 - dependencies:  
1610 - '@uppy/core': 2.1.4  
1611 - '@uppy/xhr-upload': 2.0.7_@uppy+core@2.1.4  
1612 - '@wangeditor/basic-modules': 1.1.3_wc2s6ucqguq7ye7cv5gs4ie3pa  
1613 - '@wangeditor/code-highlight': 1.0.2_f4mxrtym3fqiukj5pvowt5wic4  
1614 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1615 - '@wangeditor/list-module': 1.0.2_f4mxrtym3fqiukj5pvowt5wic4  
1616 - '@wangeditor/table-module': 1.1.1_bvrp5jl242d2qfje6ynmi2zcee  
1617 - '@wangeditor/upload-image-module': 1.0.1_ufbnlxopmh6qp74j246va2ubh4  
1618 - '@wangeditor/video-module': 1.1.1_gg5oy5micpmd7yyutevooksz6m  
1619 - dom7: 3.0.0  
1620 - is-hotkey: 0.2.0  
1621 - lodash.camelcase: 4.3.0  
1622 - lodash.clonedeep: 4.5.0  
1623 - lodash.debounce: 4.0.8  
1624 - lodash.foreach: 4.5.0  
1625 - lodash.isequal: 4.5.0  
1626 - lodash.throttle: 4.1.1  
1627 - lodash.toarray: 4.4.0  
1628 - nanoid: 3.3.4  
1629 - slate: 0.72.8  
1630 - snabbdom: 3.3.1  
1631 - dev: false  
1632 -  
1633 - /@wangeditor/list-module/1.0.2_f4mxrtym3fqiukj5pvowt5wic4:  
1634 - resolution: {integrity: sha512-VfENZEFvsLTiLxN/cj8cibFGy9NVV+/cfATTiLiH9ef+8lgKv8apttXYVlqIAfnlJLLuCk0cIm8c/zH+hbtrZg==}  
1635 - peerDependencies:  
1636 - '@wangeditor/core': 1.x  
1637 - dom7: ^3.0.0  
1638 - slate: ^0.72.0  
1639 - snabbdom: ^3.1.0  
1640 - dependencies:  
1641 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1642 - dom7: 3.0.0  
1643 - slate: 0.72.8  
1644 - snabbdom: 3.3.1  
1645 - dev: false  
1646 -  
1647 - /@wangeditor/table-module/1.1.1_bvrp5jl242d2qfje6ynmi2zcee:  
1648 - resolution: {integrity: sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==}  
1649 - peerDependencies:  
1650 - '@wangeditor/core': 1.x  
1651 - dom7: ^3.0.0  
1652 - lodash.isequal: ^4.5.0  
1653 - lodash.throttle: ^4.1.1  
1654 - nanoid: ^3.2.0  
1655 - slate: ^0.72.0  
1656 - snabbdom: ^3.1.0  
1657 - dependencies:  
1658 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1659 - dom7: 3.0.0  
1660 - lodash.isequal: 4.5.0  
1661 - lodash.throttle: 4.1.1  
1662 - nanoid: 3.3.4  
1663 - slate: 0.72.8  
1664 - snabbdom: 3.3.1  
1665 - dev: false  
1666 -  
1667 - /@wangeditor/upload-image-module/1.0.1_ufbnlxopmh6qp74j246va2ubh4:  
1668 - resolution: {integrity: sha512-vgUV4ENttTITblqtVuzleIq732OmzmzzgrIvX6b3GRGPSw5u8glJ/87tOEhvHjHECc4oFo18B7xzJ1GpBj79/w==}  
1669 - peerDependencies:  
1670 - '@uppy/core': ^2.0.3  
1671 - '@uppy/xhr-upload': ^2.0.3  
1672 - '@wangeditor/basic-modules': 1.x  
1673 - '@wangeditor/core': 1.x  
1674 - dom7: ^3.0.0  
1675 - lodash.foreach: ^4.5.0  
1676 - slate: ^0.72.0  
1677 - snabbdom: ^3.1.0  
1678 - dependencies:  
1679 - '@uppy/core': 2.1.4  
1680 - '@uppy/xhr-upload': 2.0.7_@uppy+core@2.1.4  
1681 - '@wangeditor/basic-modules': 1.1.3_wc2s6ucqguq7ye7cv5gs4ie3pa  
1682 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1683 - dom7: 3.0.0  
1684 - lodash.foreach: 4.5.0  
1685 - slate: 0.72.8  
1686 - snabbdom: 3.3.1  
1687 - dev: false  
1688 -  
1689 - /@wangeditor/video-module/1.1.1_gg5oy5micpmd7yyutevooksz6m:  
1690 - resolution: {integrity: sha512-6gzpS5cnJihW2T0HFjqmbv6v8ouyaeMUjdM2X8BPohwD74p1ov00dCmRt5QekNTyYSmRHK0ASkUMOvRGqaDxMg==}  
1691 - peerDependencies:  
1692 - '@uppy/core': ^2.1.4  
1693 - '@uppy/xhr-upload': ^2.0.7  
1694 - '@wangeditor/core': 1.x  
1695 - dom7: ^3.0.0  
1696 - nanoid: ^3.2.0  
1697 - slate: ^0.72.0  
1698 - snabbdom: ^3.1.0  
1699 - dependencies:  
1700 - '@uppy/core': 2.1.4  
1701 - '@uppy/xhr-upload': 2.0.7_@uppy+core@2.1.4  
1702 - '@wangeditor/core': 1.1.8_bevuzdaogp7zvgcbkum7pdqkgy  
1703 - dom7: 3.0.0  
1704 - nanoid: 3.3.4  
1705 - slate: 0.72.8  
1706 - snabbdom: 3.3.1  
1707 - dev: false  
1708 -  
1709 - /@windicss/config/1.8.4:  
1710 - resolution: {integrity: sha512-i4fFGFfZoRess6WMkauykHC3PFd9xKYVx7lSuLfMK7sgo6x3+l4dY42GbsWMHyLqH1sTMfyt1LgfXSIKYJozSA==}  
1711 - dependencies:  
1712 - debug: 4.3.4  
1713 - jiti: 1.14.0  
1714 - windicss: 3.5.6  
1715 - transitivePeerDependencies:  
1716 - - supports-color  
1717 - dev: true  
1718 -  
1719 - /@windicss/config/1.8.7:  
1720 - resolution: {integrity: sha512-8n+/Y36j5L3rw2tgMdLjeGRuNV7VYfKoHoraLK6Bk9OJ1MTPd5vv7pekof/uOPWVV7WWjVeZ6CTO8SDbDDW3iw==}  
1721 - dependencies:  
1722 - debug: 4.3.4  
1723 - jiti: 1.14.0  
1724 - windicss: 3.5.6  
1725 - transitivePeerDependencies:  
1726 - - supports-color  
1727 - dev: true  
1728 -  
1729 - /@windicss/plugin-utils/1.8.4:  
1730 - resolution: {integrity: sha512-DqJVwAfzlgd8nYSNlmhXOey32pI8UwH7QiOWdFS/AR2O/q9oLDGHDn97Its/kZdfoyhi8ylwZNP2Pk0H7cihhQ==}  
1731 - dependencies:  
1732 - '@antfu/utils': 0.5.2  
1733 - '@windicss/config': 1.8.4  
1734 - debug: 4.3.4  
1735 - fast-glob: 3.2.11  
1736 - magic-string: 0.26.2  
1737 - micromatch: 4.0.5  
1738 - windicss: 3.5.6  
1739 - transitivePeerDependencies:  
1740 - - supports-color  
1741 - dev: true  
1742 -  
1743 - /@windicss/plugin-utils/1.8.7:  
1744 - resolution: {integrity: sha512-dfj95olNZyGFDPFMBvE5oq8hA5f0ooUJZjVdWlthS4ek4W1/xNOHDxB6ygWR8LE9zCOXZykApjt1LOhy9Ky2QA==}  
1745 - dependencies:  
1746 - '@antfu/utils': 0.5.2  
1747 - '@windicss/config': 1.8.7  
1748 - debug: 4.3.4  
1749 - fast-glob: 3.2.11  
1750 - magic-string: 0.26.2  
1751 - micromatch: 4.0.5  
1752 - windicss: 3.5.6  
1753 - transitivePeerDependencies:  
1754 - - supports-color  
1755 - dev: true  
1756 -  
1757 - /@zxcvbn-ts/core/2.0.3:  
1758 - resolution: {integrity: sha512-lHzjnnTFGquVLpG1IraXlDzZ//h/11Ws7ZuwIeDTIExaLFntEdZh1EirwgRF34S4ceou3zxG15as2Ik5W473hA==}  
1759 - dev: false  
1760 -  
1761 - /JSONStream/1.3.5:  
1762 - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}  
1763 - hasBin: true  
1764 - dependencies:  
1765 - jsonparse: 1.3.1  
1766 - through: 2.3.8  
1767 - dev: true  
1768 -  
1769 - /acorn-jsx/5.3.2_acorn@7.4.1:  
1770 - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}  
1771 - peerDependencies:  
1772 - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0  
1773 - dependencies:  
1774 - acorn: 7.4.1  
1775 - dev: true  
1776 -  
1777 - /acorn-jsx/5.3.2_acorn@8.7.1:  
1778 - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}  
1779 - peerDependencies:  
1780 - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0  
1781 - dependencies:  
1782 - acorn: 8.7.1  
1783 - dev: true  
1784 -  
1785 - /acorn-walk/8.2.0:  
1786 - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}  
1787 - engines: {node: '>=0.4.0'}  
1788 - dev: true  
1789 -  
1790 - /acorn/7.4.1:  
1791 - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}  
1792 - engines: {node: '>=0.4.0'}  
1793 - hasBin: true  
1794 - dev: true  
1795 -  
1796 - /acorn/8.7.1:  
1797 - resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}  
1798 - engines: {node: '>=0.4.0'}  
1799 - hasBin: true  
1800 - dev: true  
1801 -  
1802 - /aggregate-error/3.1.0:  
1803 - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}  
1804 - engines: {node: '>=8'}  
1805 - dependencies:  
1806 - clean-stack: 2.2.0  
1807 - indent-string: 4.0.0  
1808 - dev: true  
1809 -  
1810 - /ajv/6.12.6:  
1811 - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}  
1812 - dependencies:  
1813 - fast-deep-equal: 3.1.3  
1814 - fast-json-stable-stringify: 2.1.0  
1815 - json-schema-traverse: 0.4.1  
1816 - uri-js: 4.4.1  
1817 - dev: true  
1818 -  
1819 - /ajv/8.11.0:  
1820 - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}  
1821 - dependencies:  
1822 - fast-deep-equal: 3.1.3  
1823 - json-schema-traverse: 1.0.0  
1824 - require-from-string: 2.0.2  
1825 - uri-js: 4.4.1  
1826 - dev: true  
1827 -  
1828 - /animate.css/4.1.1:  
1829 - 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}  
1830 - dev: false  
1831 -  
1832 - /ansi-escapes/4.3.2:  
1833 - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}  
1834 - engines: {node: '>=8'}  
1835 - dependencies:  
1836 - type-fest: 0.21.3  
1837 - dev: true  
1838 -  
1839 - /ansi-regex/2.1.1:  
1840 - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}  
1841 - engines: {node: '>=0.10.0'}  
1842 - dev: true  
1843 -  
1844 - /ansi-regex/5.0.1:  
1845 - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}  
1846 - engines: {node: '>=8'}  
1847 -  
1848 - /ansi-regex/6.0.1:  
1849 - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}  
1850 - engines: {node: '>=12'}  
1851 - dev: true  
1852 -  
1853 - /ansi-styles/2.2.1:  
1854 - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}  
1855 - engines: {node: '>=0.10.0'}  
1856 - dev: true  
1857 -  
1858 - /ansi-styles/3.2.1:  
1859 - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}  
1860 - engines: {node: '>=4'}  
1861 - dependencies:  
1862 - color-convert: 1.9.3  
1863 - dev: true  
1864 -  
1865 - /ansi-styles/4.3.0:  
1866 - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}  
1867 - engines: {node: '>=8'}  
1868 - dependencies:  
1869 - color-convert: 2.0.1  
1870 -  
1871 - /ansi-styles/6.1.0:  
1872 - resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==}  
1873 - engines: {node: '>=12'}  
1874 - dev: true  
1875 -  
1876 - /anymatch/3.1.2:  
1877 - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}  
1878 - engines: {node: '>= 8'}  
1879 - dependencies:  
1880 - normalize-path: 3.0.0  
1881 - picomatch: 2.3.1  
1882 - dev: true  
1883 -  
1884 - /arg/4.1.3:  
1885 - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}  
1886 - dev: true  
1887 -  
1888 - /argparse/2.0.1:  
1889 - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}  
1890 - dev: true  
1891 -  
1892 - /arr-diff/4.0.0:  
1893 - 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}  
1894 - engines: {node: '>=0.10.0'}  
1895 - dev: true  
1896 -  
1897 - /arr-flatten/1.1.0:  
1898 - 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}  
1899 - engines: {node: '>=0.10.0'}  
1900 - dev: true  
1901 -  
1902 - /arr-union/3.1.0:  
1903 - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arr-union/-/arr-union-3.1.0.tgz}  
1904 - engines: {node: '>=0.10.0'}  
1905 - dev: true  
1906 -  
1907 - /array-each/1.0.1:  
1908 - resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==}  
1909 - engines: {node: '>=0.10.0'}  
1910 - dev: true  
1911 -  
1912 - /array-ify/1.0.0:  
1913 - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}  
1914 - dev: true  
1915 -  
1916 - /array-slice/1.1.0:  
1917 - resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==}  
1918 - engines: {node: '>=0.10.0'}  
1919 - dev: true  
1920 -  
1921 - /array-union/2.1.0:  
1922 - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}  
1923 - engines: {node: '>=8'}  
1924 - dev: true  
1925 -  
1926 - /array-unique/0.3.2:  
1927 - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/array-unique/-/array-unique-0.3.2.tgz}  
1928 - engines: {node: '>=0.10.0'}  
1929 - dev: true  
1930 -  
1931 - /arrify/1.0.1:  
1932 - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}  
1933 - engines: {node: '>=0.10.0'}  
1934 - dev: true  
1935 -  
1936 - /arrify/2.0.1:  
1937 - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arrify/-/arrify-2.0.1.tgz}  
1938 - engines: {node: '>=8'}  
1939 - dev: true  
1940 -  
1941 - /assign-symbols/1.0.0:  
1942 - 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}  
1943 - engines: {node: '>=0.10.0'}  
1944 - dev: true  
1945 -  
1946 - /astral-regex/2.0.0:  
1947 - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}  
1948 - engines: {node: '>=8'}  
1949 - dev: true  
1950 -  
1951 - /async-validator/4.2.5:  
1952 - resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}  
1953 - dev: false  
1954 -  
1955 - /async/0.9.2:  
1956 - resolution: {integrity: sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/async/-/async-0.9.2.tgz}  
1957 - dev: true  
1958 -  
1959 - /asynckit/0.4.0:  
1960 - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}  
1961 - dev: false  
1962 -  
1963 - /atob/2.1.2:  
1964 - 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}  
1965 - engines: {node: '>= 4.5.0'}  
1966 - hasBin: true  
1967 - dev: true  
1968 -  
1969 - /autoprefixer/10.4.7_postcss@8.4.14:  
1970 - resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==}  
1971 - engines: {node: ^10 || ^12 || >=14}  
1972 - hasBin: true  
1973 - peerDependencies:  
1974 - postcss: ^8.1.0  
1975 - dependencies:  
1976 - browserslist: 4.20.3  
1977 - caniuse-lite: 1.0.30001335  
1978 - fraction.js: 4.2.0  
1979 - normalize-range: 0.1.2  
1980 - picocolors: 1.0.0  
1981 - postcss: 8.4.14  
1982 - postcss-value-parser: 4.2.0  
1983 - dev: true  
1984 -  
1985 - /axios/0.26.1_debug@4.3.4:  
1986 - resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}  
1987 - dependencies:  
1988 - follow-redirects: 1.14.9  
1989 - transitivePeerDependencies:  
1990 - - debug  
1991 - dev: true  
1992 -  
1993 - /axios/0.27.2:  
1994 - resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}  
1995 - dependencies:  
1996 - follow-redirects: 1.14.9  
1997 - form-data: 4.0.0  
1998 - transitivePeerDependencies:  
1999 - - debug  
2000 - dev: false  
2001 -  
2002 - /balanced-match/1.0.2:  
2003 - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}  
2004 - dev: true  
2005 -  
2006 - /balanced-match/2.0.0:  
2007 - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}  
2008 - dev: true  
2009 -  
2010 - /base/0.11.2:  
2011 - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/base/-/base-0.11.2.tgz}  
2012 - engines: {node: '>=0.10.0'}  
2013 - dependencies:  
2014 - cache-base: 1.0.1  
2015 - class-utils: 0.3.6  
2016 - component-emitter: 1.3.0  
2017 - define-property: 1.0.0  
2018 - isobject: 3.0.1  
2019 - mixin-deep: 1.3.2  
2020 - pascalcase: 0.1.1  
2021 - dev: true  
2022 -  
2023 - /base64-js/1.5.1:  
2024 - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}  
2025 - dev: true  
2026 -  
2027 - /big.js/5.2.2:  
2028 - 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}  
2029 - dev: true  
2030 -  
2031 - /binary-extensions/2.2.0:  
2032 - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}  
2033 - engines: {node: '>=8'}  
2034 - dev: true  
2035 -  
2036 - /bl/4.1.0:  
2037 - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}  
2038 - dependencies:  
2039 - buffer: 5.7.1  
2040 - inherits: 2.0.4  
2041 - readable-stream: 3.6.0  
2042 - dev: true  
2043 -  
2044 - /bl/5.0.0:  
2045 - resolution: {integrity: sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==}  
2046 - dependencies:  
2047 - buffer: 6.0.3  
2048 - inherits: 2.0.4  
2049 - readable-stream: 3.6.0  
2050 - dev: true  
2051 -  
2052 - /bluebird/3.7.2:  
2053 - 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}  
2054 - dev: true  
2055 -  
2056 - /boolbase/1.0.0:  
2057 - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}  
2058 - dev: true  
2059 -  
2060 - /brace-expansion/1.1.11:  
2061 - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}  
2062 - dependencies:  
2063 - balanced-match: 1.0.2  
2064 - concat-map: 0.0.1  
2065 - dev: true  
2066 -  
2067 - /braces/2.3.2:  
2068 - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}  
2069 - engines: {node: '>=0.10.0'}  
2070 - dependencies:  
2071 - arr-flatten: 1.1.0  
2072 - array-unique: 0.3.2  
2073 - extend-shallow: 2.0.1  
2074 - fill-range: 4.0.0  
2075 - isobject: 3.0.1  
2076 - repeat-element: 1.1.4  
2077 - snapdragon: 0.8.2  
2078 - snapdragon-node: 2.1.1  
2079 - split-string: 3.1.0  
2080 - to-regex: 3.0.2  
2081 - transitivePeerDependencies:  
2082 - - supports-color  
2083 - dev: true  
2084 -  
2085 - /braces/3.0.2:  
2086 - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}  
2087 - engines: {node: '>=8'}  
2088 - dependencies:  
2089 - fill-range: 7.0.1  
2090 - dev: true  
2091 -  
2092 - /browserslist/4.20.3:  
2093 - resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==}  
2094 - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}  
2095 - hasBin: true  
2096 - dependencies:  
2097 - caniuse-lite: 1.0.30001335  
2098 - electron-to-chromium: 1.4.134  
2099 - escalade: 3.1.1  
2100 - node-releases: 2.0.4  
2101 - picocolors: 1.0.0  
2102 - dev: true  
2103 -  
2104 - /buffer-from/1.1.2:  
2105 - 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}  
2106 - dev: true  
2107 -  
2108 - /buffer/5.7.1:  
2109 - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}  
2110 - dependencies:  
2111 - base64-js: 1.5.1  
2112 - ieee754: 1.2.1  
2113 - dev: true  
2114 -  
2115 - /buffer/6.0.3:  
2116 - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}  
2117 - dependencies:  
2118 - base64-js: 1.5.1  
2119 - ieee754: 1.2.1  
2120 - dev: true  
2121 -  
2122 - /cac/6.7.12:  
2123 - resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==}  
2124 - engines: {node: '>=8'}  
2125 - dev: true  
2126 -  
2127 - /cache-base/1.0.1:  
2128 - 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}  
2129 - engines: {node: '>=0.10.0'}  
2130 - dependencies:  
2131 - collection-visit: 1.0.0  
2132 - component-emitter: 1.3.0  
2133 - get-value: 2.0.6  
2134 - has-value: 1.0.0  
2135 - isobject: 3.0.1  
2136 - set-value: 2.0.1  
2137 - to-object-path: 0.3.0  
2138 - union-value: 1.0.1  
2139 - unset-value: 1.0.0  
2140 - dev: true  
2141 -  
2142 - /call-bind/1.0.2:  
2143 - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}  
2144 - dependencies:  
2145 - function-bind: 1.1.1  
2146 - get-intrinsic: 1.1.1  
2147 - dev: false  
2148 -  
2149 - /callsites/3.1.0:  
2150 - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}  
2151 - engines: {node: '>=6'}  
2152 - dev: true  
2153 -  
2154 - /camel-case/4.1.2:  
2155 - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}  
2156 - dependencies:  
2157 - pascal-case: 3.1.2  
2158 - tslib: 2.3.1  
2159 - dev: true  
2160 -  
2161 - /camelcase-keys/6.2.2:  
2162 - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}  
2163 - engines: {node: '>=8'}  
2164 - dependencies:  
2165 - camelcase: 5.3.1  
2166 - map-obj: 4.3.0  
2167 - quick-lru: 4.0.1  
2168 - dev: true  
2169 -  
2170 - /camelcase/5.3.1:  
2171 - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}  
2172 - engines: {node: '>=6'}  
2173 -  
2174 - /camelcase/6.2.1:  
2175 - resolution: {integrity: sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==}  
2176 - engines: {node: '>=10'}  
2177 - dev: true  
2178 -  
2179 - /caniuse-lite/1.0.30001335:  
2180 - resolution: {integrity: sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==}  
2181 - dev: true  
2182 -  
2183 - /capital-case/1.0.4:  
2184 - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}  
2185 - dependencies:  
2186 - no-case: 3.0.4  
2187 - tslib: 2.3.1  
2188 - upper-case-first: 2.0.2  
2189 - dev: true  
2190 -  
2191 - /chalk/1.1.3:  
2192 - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}  
2193 - engines: {node: '>=0.10.0'}  
2194 - dependencies:  
2195 - ansi-styles: 2.2.1  
2196 - escape-string-regexp: 1.0.5  
2197 - has-ansi: 2.0.0  
2198 - strip-ansi: 3.0.1  
2199 - supports-color: 2.0.0  
2200 - dev: true  
2201 -  
2202 - /chalk/2.4.2:  
2203 - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}  
2204 - engines: {node: '>=4'}  
2205 - dependencies:  
2206 - ansi-styles: 3.2.1  
2207 - escape-string-regexp: 1.0.5  
2208 - supports-color: 5.5.0  
2209 - dev: true  
2210 -  
2211 - /chalk/3.0.0:  
2212 - resolution: {integrity: sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz}  
2213 - engines: {node: '>=8'}  
2214 - dependencies:  
2215 - ansi-styles: 4.3.0  
2216 - supports-color: 7.2.0  
2217 - dev: true  
2218 -  
2219 - /chalk/4.1.2:  
2220 - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}  
2221 - engines: {node: '>=10'}  
2222 - dependencies:  
2223 - ansi-styles: 4.3.0  
2224 - supports-color: 7.2.0  
2225 - dev: true  
2226 -  
2227 - /chalk/5.0.1:  
2228 - resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==}  
2229 - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}  
2230 - dev: true  
2231 -  
2232 - /change-case/4.1.2:  
2233 - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==}  
2234 - dependencies:  
2235 - camel-case: 4.1.2  
2236 - capital-case: 1.0.4  
2237 - constant-case: 3.0.4  
2238 - dot-case: 3.0.4  
2239 - header-case: 2.0.4  
2240 - no-case: 3.0.4  
2241 - param-case: 3.0.4  
2242 - pascal-case: 3.1.2  
2243 - path-case: 3.0.4  
2244 - sentence-case: 3.0.4  
2245 - snake-case: 3.0.4  
2246 - tslib: 2.3.1  
2247 - dev: true  
2248 -  
2249 - /chardet/0.7.0:  
2250 - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}  
2251 - dev: true  
2252 -  
2253 - /cheerio-select/1.6.0:  
2254 - resolution: {integrity: sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==}  
2255 - dependencies:  
2256 - css-select: 4.3.0  
2257 - css-what: 6.1.0  
2258 - domelementtype: 2.3.0  
2259 - domhandler: 4.3.1  
2260 - domutils: 2.8.0  
2261 - dev: true  
2262 -  
2263 - /cheerio/1.0.0-rc.10:  
2264 - resolution: {integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==}  
2265 - engines: {node: '>= 6'}  
2266 - dependencies:  
2267 - cheerio-select: 1.6.0  
2268 - dom-serializer: 1.3.2  
2269 - domhandler: 4.3.1  
2270 - htmlparser2: 6.1.0  
2271 - parse5: 6.0.1  
2272 - parse5-htmlparser2-tree-adapter: 6.0.1  
2273 - tslib: 2.3.1  
2274 - dev: true  
2275 -  
2276 - /chokidar/3.5.3:  
2277 - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}  
2278 - engines: {node: '>= 8.10.0'}  
2279 - dependencies:  
2280 - anymatch: 3.1.2  
2281 - braces: 3.0.2  
2282 - glob-parent: 5.1.2  
2283 - is-binary-path: 2.1.0  
2284 - is-glob: 4.0.3  
2285 - normalize-path: 3.0.0  
2286 - readdirp: 3.6.0  
2287 - optionalDependencies:  
2288 - fsevents: 2.3.2  
2289 - dev: true  
2290 -  
2291 - /class-utils/0.3.6:  
2292 - 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}  
2293 - engines: {node: '>=0.10.0'}  
2294 - dependencies:  
2295 - arr-union: 3.1.0  
2296 - define-property: 0.2.5  
2297 - isobject: 3.0.1  
2298 - static-extend: 0.1.2  
2299 - dev: true  
2300 -  
2301 - /clean-css/5.2.4:  
2302 - 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}  
2303 - engines: {node: '>= 10.0'}  
2304 - dependencies:  
2305 - source-map: 0.6.1  
2306 - dev: true  
2307 -  
2308 - /clean-stack/2.2.0:  
2309 - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}  
2310 - engines: {node: '>=6'}  
2311 - dev: true  
2312 -  
2313 - /cli-cursor/3.1.0:  
2314 - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}  
2315 - engines: {node: '>=8'}  
2316 - dependencies:  
2317 - restore-cursor: 3.1.0  
2318 - dev: true  
2319 -  
2320 - /cli-cursor/4.0.0:  
2321 - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}  
2322 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
2323 - dependencies:  
2324 - restore-cursor: 4.0.0  
2325 - dev: true  
2326 -  
2327 - /cli-spinners/2.6.1:  
2328 - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==}  
2329 - engines: {node: '>=6'}  
2330 - dev: true  
2331 -  
2332 - /cli-truncate/2.1.0:  
2333 - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}  
2334 - engines: {node: '>=8'}  
2335 - dependencies:  
2336 - slice-ansi: 3.0.0  
2337 - string-width: 4.2.3  
2338 - dev: true  
2339 -  
2340 - /cli-truncate/3.1.0:  
2341 - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}  
2342 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
2343 - dependencies:  
2344 - slice-ansi: 5.0.0  
2345 - string-width: 5.0.1  
2346 - dev: true  
2347 -  
2348 - /cli-width/3.0.0:  
2349 - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}  
2350 - engines: {node: '>= 10'}  
2351 - dev: true  
2352 -  
2353 - /cliui/6.0.0:  
2354 - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}  
2355 - dependencies:  
2356 - string-width: 4.2.3  
2357 - strip-ansi: 6.0.1  
2358 - wrap-ansi: 6.2.0  
2359 - dev: false  
2360 -  
2361 - /cliui/7.0.4:  
2362 - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}  
2363 - dependencies:  
2364 - string-width: 4.2.3  
2365 - strip-ansi: 6.0.1  
2366 - wrap-ansi: 7.0.0  
2367 - dev: true  
2368 -  
2369 - /clone-regexp/2.2.0:  
2370 - resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==}  
2371 - engines: {node: '>=6'}  
2372 - dependencies:  
2373 - is-regexp: 2.1.0  
2374 - dev: true  
2375 -  
2376 - /clone/1.0.4:  
2377 - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}  
2378 - engines: {node: '>=0.8'}  
2379 - dev: true  
2380 -  
2381 - /clone/2.1.2:  
2382 - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}  
2383 - engines: {node: '>=0.8'}  
2384 - dev: true  
2385 -  
2386 - /collection-visit/1.0.0:  
2387 - 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}  
2388 - engines: {node: '>=0.10.0'}  
2389 - dependencies:  
2390 - map-visit: 1.0.0  
2391 - object-visit: 1.0.1  
2392 - dev: true  
2393 -  
2394 - /color-convert/1.9.3:  
2395 - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}  
2396 - dependencies:  
2397 - color-name: 1.1.3  
2398 - dev: true  
2399 -  
2400 - /color-convert/2.0.1:  
2401 - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}  
2402 - engines: {node: '>=7.0.0'}  
2403 - dependencies:  
2404 - color-name: 1.1.4  
2405 -  
2406 - /color-name/1.1.3:  
2407 - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}  
2408 - dev: true  
2409 -  
2410 - /color-name/1.1.4:  
2411 - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}  
2412 -  
2413 - /colord/2.9.2:  
2414 - resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==}  
2415 - dev: true  
2416 -  
2417 - /colorette/2.0.16:  
2418 - resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==}  
2419 - dev: true  
2420 -  
2421 - /colorette/2.0.17:  
2422 - resolution: {integrity: sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==}  
2423 - dev: true  
2424 -  
2425 - /combined-stream/1.0.8:  
2426 - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}  
2427 - engines: {node: '>= 0.8'}  
2428 - dependencies:  
2429 - delayed-stream: 1.0.0  
2430 - dev: false  
2431 -  
2432 - /commander/2.20.3:  
2433 - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}  
2434 - dev: true  
2435 -  
2436 - /commander/7.2.0:  
2437 - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}  
2438 - engines: {node: '>= 10'}  
2439 - dev: true  
2440 -  
2441 - /commander/8.3.0:  
2442 - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}  
2443 - engines: {node: '>= 12'}  
2444 - dev: true  
2445 -  
2446 - /commander/9.3.0:  
2447 - resolution: {integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==}  
2448 - engines: {node: ^12.20.0 || >=14}  
2449 - dev: true  
2450 -  
2451 - /compare-func/2.0.0:  
2452 - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}  
2453 - dependencies:  
2454 - array-ify: 1.0.0  
2455 - dot-prop: 5.3.0  
2456 - dev: true  
2457 -  
2458 - /component-emitter/1.3.0:  
2459 - 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}  
2460 - dev: true  
2461 -  
2462 - /compute-scroll-into-view/1.0.17:  
2463 - resolution: {integrity: sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==}  
2464 - dev: false  
2465 -  
2466 - /concat-map/0.0.1:  
2467 - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}  
2468 - dev: true  
2469 -  
2470 - /connect-history-api-fallback/1.6.0:  
2471 - 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}  
2472 - engines: {node: '>=0.8'}  
2473 - dev: true  
2474 -  
2475 - /connect/3.7.0:  
2476 - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}  
2477 - engines: {node: '>= 0.10.0'}  
2478 - dependencies:  
2479 - debug: 2.6.9  
2480 - finalhandler: 1.1.2  
2481 - parseurl: 1.3.3  
2482 - utils-merge: 1.0.1  
2483 - transitivePeerDependencies:  
2484 - - supports-color  
2485 - dev: true  
2486 -  
2487 - /consola/2.15.3:  
2488 - 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}  
2489 - dev: true  
2490 -  
2491 - /constant-case/3.0.4:  
2492 - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}  
2493 - dependencies:  
2494 - no-case: 3.0.4  
2495 - tslib: 2.3.1  
2496 - upper-case: 2.0.2  
2497 - dev: true  
2498 -  
2499 - /conventional-changelog-angular/5.0.13:  
2500 - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}  
2501 - engines: {node: '>=10'}  
2502 - dependencies:  
2503 - compare-func: 2.0.0  
2504 - q: 1.5.1  
2505 - dev: true  
2506 -  
2507 - /conventional-changelog-conventionalcommits/5.0.0:  
2508 - resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==}  
2509 - engines: {node: '>=10'}  
2510 - dependencies:  
2511 - compare-func: 2.0.0  
2512 - lodash: 4.17.21  
2513 - q: 1.5.1  
2514 - dev: true  
2515 -  
2516 - /conventional-commits-parser/3.2.4:  
2517 - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}  
2518 - engines: {node: '>=10'}  
2519 - hasBin: true  
2520 - dependencies:  
2521 - is-text-path: 1.0.1  
2522 - JSONStream: 1.3.5  
2523 - lodash: 4.17.21  
2524 - meow: 8.1.2  
2525 - split2: 3.2.2  
2526 - through2: 4.0.2  
2527 - dev: true  
2528 -  
2529 - /convert-source-map/1.8.0:  
2530 - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}  
2531 - dependencies:  
2532 - safe-buffer: 5.1.2  
2533 - dev: true  
2534 -  
2535 - /copy-anything/2.0.3:  
2536 - resolution: {integrity: sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==}  
2537 - dependencies:  
2538 - is-what: 3.14.1  
2539 - dev: true  
2540 -  
2541 - /copy-descriptor/0.1.1:  
2542 - 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}  
2543 - engines: {node: '>=0.10.0'}  
2544 - dev: true  
2545 -  
2546 - /cors/2.8.5:  
2547 - 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}  
2548 - engines: {node: '>= 0.10'}  
2549 - dependencies:  
2550 - object-assign: 4.1.1  
2551 - vary: 1.1.2  
2552 - dev: true  
2553 -  
2554 - /cosmiconfig-typescript-loader/2.0.0_tdn3ypgnfy6bmey2q4hu5jonwi:  
2555 - resolution: {integrity: sha512-2NlGul/E3vTQEANqPziqkA01vfiuUU8vT0jZAuUIjEW8u3eCcnCQWLggapCjhbF76s7KQF0fM0kXSKmzaDaG1g==}  
2556 - engines: {node: '>=12', npm: '>=6'}  
2557 - peerDependencies:  
2558 - '@types/node': '*'  
2559 - typescript: '>=3'  
2560 - dependencies:  
2561 - '@types/node': 18.0.6  
2562 - cosmiconfig: 7.0.1  
2563 - ts-node: 10.7.0_tdn3ypgnfy6bmey2q4hu5jonwi  
2564 - typescript: 4.7.4  
2565 - transitivePeerDependencies:  
2566 - - '@swc/core'  
2567 - - '@swc/wasm'  
2568 - dev: true  
2569 -  
2570 - /cosmiconfig/7.0.1:  
2571 - resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==}  
2572 - engines: {node: '>=10'}  
2573 - dependencies:  
2574 - '@types/parse-json': 4.0.0  
2575 - import-fresh: 3.3.0  
2576 - parse-json: 5.2.0  
2577 - path-type: 4.0.0  
2578 - yaml: 1.10.2  
2579 - dev: true  
2580 -  
2581 - /create-require/1.1.1:  
2582 - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}  
2583 - dev: true  
2584 -  
2585 - /cross-fetch/3.1.5:  
2586 - 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}  
2587 - dependencies:  
2588 - node-fetch: 2.6.7  
2589 - transitivePeerDependencies:  
2590 - - encoding  
2591 - dev: true  
2592 -  
2593 - /cross-spawn/7.0.3:  
2594 - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}  
2595 - engines: {node: '>= 8'}  
2596 - dependencies:  
2597 - path-key: 3.1.1  
2598 - shebang-command: 2.0.0  
2599 - which: 2.0.2  
2600 - dev: true  
2601 -  
2602 - /css-functions-list/3.1.0:  
2603 - resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==}  
2604 - engines: {node: '>=12.22'}  
2605 - dev: true  
2606 -  
2607 - /css-select/4.2.1:  
2608 - 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}  
2609 - dependencies:  
2610 - boolbase: 1.0.0  
2611 - css-what: 5.1.0  
2612 - domhandler: 4.3.1  
2613 - domutils: 2.8.0  
2614 - nth-check: 2.0.1  
2615 - dev: true  
2616 -  
2617 - /css-select/4.3.0:  
2618 - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}  
2619 - dependencies:  
2620 - boolbase: 1.0.0  
2621 - css-what: 6.1.0  
2622 - domhandler: 4.3.1  
2623 - domutils: 2.8.0  
2624 - nth-check: 2.0.1  
2625 - dev: true  
2626 -  
2627 - /css-tree/1.1.3:  
2628 - 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}  
2629 - engines: {node: '>=8.0.0'}  
2630 - dependencies:  
2631 - mdn-data: 2.0.14  
2632 - source-map: 0.6.1  
2633 - dev: true  
2634 -  
2635 - /css-what/5.1.0:  
2636 - resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==}  
2637 - engines: {node: '>= 6'}  
2638 - dev: true  
2639 -  
2640 - /css-what/6.1.0:  
2641 - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}  
2642 - engines: {node: '>= 6'}  
2643 - dev: true  
2644 -  
2645 - /cssesc/3.0.0:  
2646 - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}  
2647 - engines: {node: '>=4'}  
2648 - hasBin: true  
2649 - dev: true  
2650 -  
2651 - /csso/4.2.0:  
2652 - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/csso/-/csso-4.2.0.tgz}  
2653 - engines: {node: '>=8.0.0'}  
2654 - dependencies:  
2655 - css-tree: 1.1.3  
2656 - dev: true  
2657 -  
2658 - /csstype/2.6.19:  
2659 - resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==}  
2660 -  
2661 - /d/1.0.1:  
2662 - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}  
2663 - dependencies:  
2664 - es5-ext: 0.10.53  
2665 - type: 1.2.0  
2666 - dev: false  
2667 -  
2668 - /dargs/7.0.0:  
2669 - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}  
2670 - engines: {node: '>=8'}  
2671 - dev: true  
2672 -  
2673 - /dayjs/1.11.3:  
2674 - resolution: {integrity: sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==}  
2675 - dev: false  
2676 -  
2677 - /debug/2.6.9:  
2678 - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}  
2679 - peerDependencies:  
2680 - supports-color: '*'  
2681 - peerDependenciesMeta:  
2682 - supports-color:  
2683 - optional: true  
2684 - dependencies:  
2685 - ms: 2.0.0  
2686 - dev: true  
2687 -  
2688 - /debug/3.2.7:  
2689 - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}  
2690 - peerDependencies:  
2691 - supports-color: '*'  
2692 - peerDependenciesMeta:  
2693 - supports-color:  
2694 - optional: true  
2695 - dependencies:  
2696 - ms: 2.1.3  
2697 - dev: true  
2698 - optional: true  
2699 -  
2700 - /debug/4.3.3:  
2701 - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/debug/-/debug-4.3.3.tgz}  
2702 - engines: {node: '>=6.0'}  
2703 - peerDependencies:  
2704 - supports-color: '*'  
2705 - peerDependenciesMeta:  
2706 - supports-color:  
2707 - optional: true  
2708 - dependencies:  
2709 - ms: 2.1.2  
2710 - dev: true  
2711 -  
2712 - /debug/4.3.4:  
2713 - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}  
2714 - engines: {node: '>=6.0'}  
2715 - peerDependencies:  
2716 - supports-color: '*'  
2717 - peerDependenciesMeta:  
2718 - supports-color:  
2719 - optional: true  
2720 - dependencies:  
2721 - ms: 2.1.2  
2722 - dev: true  
2723 -  
2724 - /decamelize-keys/1.1.0:  
2725 - resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==}  
2726 - engines: {node: '>=0.10.0'}  
2727 - dependencies:  
2728 - decamelize: 1.2.0  
2729 - map-obj: 1.0.1  
2730 - dev: true  
2731 -  
2732 - /decamelize/1.2.0:  
2733 - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}  
2734 - engines: {node: '>=0.10.0'}  
2735 -  
2736 - /declass/0.0.1:  
2737 - resolution: {integrity: sha512-V1tO9kGH+GLfkeiYCF016HSBcTP5mI+eMusSFgxZv0BzKvUQgI/Xn6FdoFuMwQHEqxKXhaW02s8oZqXPclKPUg==}  
2738 - dependencies:  
2739 - cheerio: 1.0.0-rc.10  
2740 - dev: true  
2741 -  
2742 - /decode-uri-component/0.2.0:  
2743 - 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}  
2744 - engines: {node: '>=0.10'}  
2745 - dev: true  
2746 -  
2747 - /deep-is/0.1.4:  
2748 - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}  
2749 - dev: true  
2750 -  
2751 - /defaults/1.0.3:  
2752 - resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==}  
2753 - dependencies:  
2754 - clone: 1.0.4  
2755 - dev: true  
2756 -  
2757 - /define-property/0.2.5:  
2758 - 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}  
2759 - engines: {node: '>=0.10.0'}  
2760 - dependencies:  
2761 - is-descriptor: 0.1.6  
2762 - dev: true  
2763 -  
2764 - /define-property/1.0.0:  
2765 - 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}  
2766 - engines: {node: '>=0.10.0'}  
2767 - dependencies:  
2768 - is-descriptor: 1.0.2  
2769 - dev: true  
2770 -  
2771 - /define-property/2.0.2:  
2772 - 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}  
2773 - engines: {node: '>=0.10.0'}  
2774 - dependencies:  
2775 - is-descriptor: 1.0.2  
2776 - isobject: 3.0.1  
2777 - dev: true  
2778 -  
2779 - /del/6.0.0:  
2780 - resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==}  
2781 - engines: {node: '>=10'}  
2782 - dependencies:  
2783 - globby: 11.1.0  
2784 - graceful-fs: 4.2.8  
2785 - is-glob: 4.0.3  
2786 - is-path-cwd: 2.2.0  
2787 - is-path-inside: 3.0.3  
2788 - p-map: 4.0.0  
2789 - rimraf: 3.0.2  
2790 - slash: 3.0.0  
2791 - dev: true  
2792 -  
2793 - /delayed-stream/1.0.0:  
2794 - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}  
2795 - engines: {node: '>=0.4.0'}  
2796 - dev: false  
2797 -  
2798 - /detect-file/1.0.0:  
2799 - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}  
2800 - engines: {node: '>=0.10.0'}  
2801 - dev: true  
2802 -  
2803 - /diff/4.0.2:  
2804 - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}  
2805 - engines: {node: '>=0.3.1'}  
2806 - dev: true  
2807 -  
2808 - /dijkstrajs/1.0.2:  
2809 - resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==}  
2810 - dev: false  
2811 -  
2812 - /dir-glob/3.0.1:  
2813 - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}  
2814 - engines: {node: '>=8'}  
2815 - dependencies:  
2816 - path-type: 4.0.0  
2817 - dev: true  
2818 -  
2819 - /doctrine/3.0.0:  
2820 - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}  
2821 - engines: {node: '>=6.0.0'}  
2822 - dependencies:  
2823 - esutils: 2.0.3  
2824 - dev: true  
2825 -  
2826 - /dom-serializer/0.2.2:  
2827 - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}  
2828 - dependencies:  
2829 - domelementtype: 2.3.0  
2830 - entities: 2.2.0  
2831 - dev: true  
2832 -  
2833 - /dom-serializer/1.3.2:  
2834 - resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==}  
2835 - dependencies:  
2836 - domelementtype: 2.3.0  
2837 - domhandler: 4.3.1  
2838 - entities: 2.2.0  
2839 - dev: true  
2840 -  
2841 - /dom-serializer/2.0.0:  
2842 - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}  
2843 - dependencies:  
2844 - domelementtype: 2.3.0  
2845 - domhandler: 5.0.3  
2846 - entities: 4.3.1  
2847 - dev: true  
2848 -  
2849 - /dom7/3.0.0:  
2850 - resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}  
2851 - dependencies:  
2852 - ssr-window: 3.0.0  
2853 - dev: false  
2854 -  
2855 - /domelementtype/1.3.1:  
2856 - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}  
2857 - dev: true  
2858 -  
2859 - /domelementtype/2.3.0:  
2860 - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}  
2861 - dev: true  
2862 -  
2863 - /domhandler/2.4.2:  
2864 - resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}  
2865 - dependencies:  
2866 - domelementtype: 1.3.1  
2867 - dev: true  
2868 -  
2869 - /domhandler/4.3.1:  
2870 - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}  
2871 - engines: {node: '>= 4'}  
2872 - dependencies:  
2873 - domelementtype: 2.3.0  
2874 - dev: true  
2875 -  
2876 - /domhandler/5.0.3:  
2877 - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}  
2878 - engines: {node: '>= 4'}  
2879 - dependencies:  
2880 - domelementtype: 2.3.0  
2881 - dev: true  
2882 -  
2883 - /domutils/1.7.0:  
2884 - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}  
2885 - dependencies:  
2886 - dom-serializer: 0.2.2  
2887 - domelementtype: 1.3.1  
2888 - dev: true  
2889 -  
2890 - /domutils/2.8.0:  
2891 - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}  
2892 - dependencies:  
2893 - dom-serializer: 1.3.2  
2894 - domelementtype: 2.3.0  
2895 - domhandler: 4.3.1  
2896 - dev: true  
2897 -  
2898 - /domutils/3.0.1:  
2899 - resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}  
2900 - dependencies:  
2901 - dom-serializer: 2.0.0  
2902 - domelementtype: 2.3.0  
2903 - domhandler: 5.0.3  
2904 - dev: true  
2905 -  
2906 - /dot-case/3.0.4:  
2907 - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}  
2908 - dependencies:  
2909 - no-case: 3.0.4  
2910 - tslib: 2.3.1  
2911 - dev: true  
2912 -  
2913 - /dot-prop/5.3.0:  
2914 - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}  
2915 - engines: {node: '>=8'}  
2916 - dependencies:  
2917 - is-obj: 2.0.0  
2918 - dev: true  
2919 -  
2920 - /dotenv-expand/8.0.2:  
2921 - 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}  
2922 - engines: {node: '>=12'}  
2923 - dev: true  
2924 -  
2925 - /dotenv/16.0.0:  
2926 - 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}  
2927 - engines: {node: '>=12'}  
2928 - dev: true  
2929 -  
2930 - /echarts-wordcloud/2.0.0_echarts@5.3.3:  
2931 - 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}  
2932 - peerDependencies:  
2933 - echarts: ^5.0.1  
2934 - dependencies:  
2935 - echarts: 5.3.3  
2936 - dev: false  
2937 -  
2938 - /echarts/5.3.3:  
2939 - resolution: {integrity: sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==}  
2940 - dependencies:  
2941 - tslib: 2.3.0  
2942 - zrender: 5.3.2  
2943 - dev: false  
2944 -  
2945 - /ee-first/1.1.1:  
2946 - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}  
2947 - dev: true  
2948 -  
2949 - /ejs/3.1.6:  
2950 - resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/ejs/-/ejs-3.1.6.tgz}  
2951 - engines: {node: '>=0.10.0'}  
2952 - hasBin: true  
2953 - dependencies:  
2954 - jake: 10.8.2  
2955 - dev: true  
2956 -  
2957 - /electron-to-chromium/1.4.134:  
2958 - resolution: {integrity: sha512-OdD7M2no4Mi8PopfvoOuNcwYDJ2mNFxaBfurA6okG3fLBaMcFah9S+si84FhX+FIWLKkdaiHfl4A+5ep/gOVrg==}  
2959 - dev: true  
2960 -  
2961 - /element-plus/2.2.9_vue@3.2.37:  
2962 - resolution: {integrity: sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ==}  
2963 - peerDependencies:  
2964 - vue: ^3.2.0  
2965 - dependencies:  
2966 - '@ctrl/tinycolor': 3.4.1  
2967 - '@element-plus/icons-vue': 2.0.6_vue@3.2.37  
2968 - '@floating-ui/dom': 0.5.4  
2969 - '@popperjs/core': /@sxzz/popperjs-es/2.11.7  
2970 - '@types/lodash': 4.14.182  
2971 - '@types/lodash-es': 4.17.6  
2972 - '@vueuse/core': 8.9.4_vue@3.2.37  
2973 - async-validator: 4.2.5  
2974 - dayjs: 1.11.3  
2975 - escape-html: 1.0.3  
2976 - lodash: 4.17.21  
2977 - lodash-es: 4.17.21  
2978 - lodash-unified: 1.0.2_3ib2ivapxullxkx3xftsimdk7u  
2979 - memoize-one: 6.0.0  
2980 - normalize-wheel-es: 1.1.2  
2981 - vue: 3.2.37  
2982 - transitivePeerDependencies:  
2983 - - '@vue/composition-api'  
2984 - dev: false  
2985 -  
2986 - /emoji-regex/8.0.0:  
2987 - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}  
2988 -  
2989 - /emoji-regex/9.2.2:  
2990 - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}  
2991 - dev: true  
2992 -  
2993 - /emojis-list/3.0.0:  
2994 - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/emojis-list/-/emojis-list-3.0.0.tgz}  
2995 - engines: {node: '>= 4'}  
2996 - dev: true  
2997 -  
2998 - /encode-utf8/1.0.3:  
2999 - resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==}  
3000 - dev: false  
3001 -  
3002 - /encodeurl/1.0.2:  
3003 - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}  
3004 - engines: {node: '>= 0.8'}  
3005 - dev: true  
3006 -  
3007 - /end-of-stream/1.4.4:  
3008 - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}  
3009 - dependencies:  
3010 - once: 1.4.0  
3011 - dev: true  
3012 -  
3013 - /entities/1.1.2:  
3014 - resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}  
3015 - dev: true  
3016 -  
3017 - /entities/2.2.0:  
3018 - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}  
3019 - dev: true  
3020 -  
3021 - /entities/4.3.1:  
3022 - resolution: {integrity: sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==}  
3023 - engines: {node: '>=0.12'}  
3024 - dev: true  
3025 -  
3026 - /errno/0.1.8:  
3027 - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}  
3028 - hasBin: true  
3029 - requiresBuild: true  
3030 - dependencies:  
3031 - prr: 1.0.1  
3032 - dev: true  
3033 - optional: true  
3034 -  
3035 - /error-ex/1.3.2:  
3036 - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}  
3037 - dependencies:  
3038 - is-arrayish: 0.2.1  
3039 - dev: true  
3040 -  
3041 - /es-module-lexer/0.9.3:  
3042 - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}  
3043 - dev: true  
3044 -  
3045 - /es5-ext/0.10.53:  
3046 - resolution: {integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==}  
3047 - dependencies:  
3048 - es6-iterator: 2.0.3  
3049 - es6-symbol: 3.1.3  
3050 - next-tick: 1.0.0  
3051 - dev: false  
3052 -  
3053 - /es6-iterator/2.0.3:  
3054 - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}  
3055 - dependencies:  
3056 - d: 1.0.1  
3057 - es5-ext: 0.10.53  
3058 - es6-symbol: 3.1.3  
3059 - dev: false  
3060 -  
3061 - /es6-symbol/3.1.3:  
3062 - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}  
3063 - dependencies:  
3064 - d: 1.0.1  
3065 - ext: 1.6.0  
3066 - dev: false  
3067 -  
3068 - /esbuild-android-64/0.14.49:  
3069 - resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==}  
3070 - engines: {node: '>=12'}  
3071 - cpu: [x64]  
3072 - os: [android]  
3073 - requiresBuild: true  
3074 - dev: true  
3075 - optional: true  
3076 -  
3077 - /esbuild-android-arm64/0.14.49:  
3078 - resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==}  
3079 - engines: {node: '>=12'}  
3080 - cpu: [arm64]  
3081 - os: [android]  
3082 - requiresBuild: true  
3083 - dev: true  
3084 - optional: true  
3085 -  
3086 - /esbuild-darwin-64/0.14.49:  
3087 - resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==}  
3088 - engines: {node: '>=12'}  
3089 - cpu: [x64]  
3090 - os: [darwin]  
3091 - requiresBuild: true  
3092 - dev: true  
3093 - optional: true  
3094 -  
3095 - /esbuild-darwin-arm64/0.14.49:  
3096 - resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==}  
3097 - engines: {node: '>=12'}  
3098 - cpu: [arm64]  
3099 - os: [darwin]  
3100 - requiresBuild: true  
3101 - dev: true  
3102 - optional: true  
3103 -  
3104 - /esbuild-freebsd-64/0.14.49:  
3105 - resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==}  
3106 - engines: {node: '>=12'}  
3107 - cpu: [x64]  
3108 - os: [freebsd]  
3109 - requiresBuild: true  
3110 - dev: true  
3111 - optional: true  
3112 -  
3113 - /esbuild-freebsd-arm64/0.14.49:  
3114 - resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==}  
3115 - engines: {node: '>=12'}  
3116 - cpu: [arm64]  
3117 - os: [freebsd]  
3118 - requiresBuild: true  
3119 - dev: true  
3120 - optional: true  
3121 -  
3122 - /esbuild-linux-32/0.14.49:  
3123 - resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==}  
3124 - engines: {node: '>=12'}  
3125 - cpu: [ia32]  
3126 - os: [linux]  
3127 - requiresBuild: true  
3128 - dev: true  
3129 - optional: true  
3130 -  
3131 - /esbuild-linux-64/0.14.49:  
3132 - resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==}  
3133 - engines: {node: '>=12'}  
3134 - cpu: [x64]  
3135 - os: [linux]  
3136 - requiresBuild: true  
3137 - dev: true  
3138 - optional: true  
3139 -  
3140 - /esbuild-linux-arm/0.14.49:  
3141 - resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==}  
3142 - engines: {node: '>=12'}  
3143 - cpu: [arm]  
3144 - os: [linux]  
3145 - requiresBuild: true  
3146 - dev: true  
3147 - optional: true  
3148 -  
3149 - /esbuild-linux-arm64/0.14.49:  
3150 - resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==}  
3151 - engines: {node: '>=12'}  
3152 - cpu: [arm64]  
3153 - os: [linux]  
3154 - requiresBuild: true  
3155 - dev: true  
3156 - optional: true  
3157 -  
3158 - /esbuild-linux-mips64le/0.14.49:  
3159 - resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==}  
3160 - engines: {node: '>=12'}  
3161 - cpu: [mips64el]  
3162 - os: [linux]  
3163 - requiresBuild: true  
3164 - dev: true  
3165 - optional: true  
3166 -  
3167 - /esbuild-linux-ppc64le/0.14.49:  
3168 - resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==}  
3169 - engines: {node: '>=12'}  
3170 - cpu: [ppc64]  
3171 - os: [linux]  
3172 - requiresBuild: true  
3173 - dev: true  
3174 - optional: true  
3175 -  
3176 - /esbuild-linux-riscv64/0.14.49:  
3177 - resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==}  
3178 - engines: {node: '>=12'}  
3179 - cpu: [riscv64]  
3180 - os: [linux]  
3181 - requiresBuild: true  
3182 - dev: true  
3183 - optional: true  
3184 -  
3185 - /esbuild-linux-s390x/0.14.49:  
3186 - resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==}  
3187 - engines: {node: '>=12'}  
3188 - cpu: [s390x]  
3189 - os: [linux]  
3190 - requiresBuild: true  
3191 - dev: true  
3192 - optional: true  
3193 -  
3194 - /esbuild-netbsd-64/0.14.49:  
3195 - resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==}  
3196 - engines: {node: '>=12'}  
3197 - cpu: [x64]  
3198 - os: [netbsd]  
3199 - requiresBuild: true  
3200 - dev: true  
3201 - optional: true  
3202 -  
3203 - /esbuild-openbsd-64/0.14.49:  
3204 - resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==}  
3205 - engines: {node: '>=12'}  
3206 - cpu: [x64]  
3207 - os: [openbsd]  
3208 - requiresBuild: true  
3209 - dev: true  
3210 - optional: true  
3211 -  
3212 - /esbuild-sunos-64/0.14.49:  
3213 - resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==}  
3214 - engines: {node: '>=12'}  
3215 - cpu: [x64]  
3216 - os: [sunos]  
3217 - requiresBuild: true  
3218 - dev: true  
3219 - optional: true  
3220 -  
3221 - /esbuild-windows-32/0.14.49:  
3222 - resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==}  
3223 - engines: {node: '>=12'}  
3224 - cpu: [ia32]  
3225 - os: [win32]  
3226 - requiresBuild: true  
3227 - dev: true  
3228 - optional: true  
3229 -  
3230 - /esbuild-windows-64/0.14.49:  
3231 - resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==}  
3232 - engines: {node: '>=12'}  
3233 - cpu: [x64]  
3234 - os: [win32]  
3235 - requiresBuild: true  
3236 - dev: true  
3237 - optional: true  
3238 -  
3239 - /esbuild-windows-arm64/0.14.49:  
3240 - resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==}  
3241 - engines: {node: '>=12'}  
3242 - cpu: [arm64]  
3243 - os: [win32]  
3244 - requiresBuild: true  
3245 - dev: true  
3246 - optional: true  
3247 -  
3248 - /esbuild/0.14.49:  
3249 - resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==}  
3250 - engines: {node: '>=12'}  
3251 - hasBin: true  
3252 - requiresBuild: true  
3253 - optionalDependencies:  
3254 - esbuild-android-64: 0.14.49  
3255 - esbuild-android-arm64: 0.14.49  
3256 - esbuild-darwin-64: 0.14.49  
3257 - esbuild-darwin-arm64: 0.14.49  
3258 - esbuild-freebsd-64: 0.14.49  
3259 - esbuild-freebsd-arm64: 0.14.49  
3260 - esbuild-linux-32: 0.14.49  
3261 - esbuild-linux-64: 0.14.49  
3262 - esbuild-linux-arm: 0.14.49  
3263 - esbuild-linux-arm64: 0.14.49  
3264 - esbuild-linux-mips64le: 0.14.49  
3265 - esbuild-linux-ppc64le: 0.14.49  
3266 - esbuild-linux-riscv64: 0.14.49  
3267 - esbuild-linux-s390x: 0.14.49  
3268 - esbuild-netbsd-64: 0.14.49  
3269 - esbuild-openbsd-64: 0.14.49  
3270 - esbuild-sunos-64: 0.14.49  
3271 - esbuild-windows-32: 0.14.49  
3272 - esbuild-windows-64: 0.14.49  
3273 - esbuild-windows-arm64: 0.14.49  
3274 - dev: true  
3275 -  
3276 - /escalade/3.1.1:  
3277 - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}  
3278 - engines: {node: '>=6'}  
3279 - dev: true  
3280 -  
3281 - /escape-html/1.0.3:  
3282 - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}  
3283 -  
3284 - /escape-string-regexp/1.0.5:  
3285 - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}  
3286 - engines: {node: '>=0.8.0'}  
3287 - dev: true  
3288 -  
3289 - /escape-string-regexp/4.0.0:  
3290 - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}  
3291 - engines: {node: '>=10'}  
3292 - dev: true  
3293 -  
3294 - /eslint-config-prettier/8.5.0_eslint@8.20.0:  
3295 - 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}  
3296 - hasBin: true  
3297 - peerDependencies:  
3298 - eslint: '>=7.0.0'  
3299 - dependencies:  
3300 - eslint: 8.20.0  
3301 - dev: true  
3302 -  
3303 - /eslint-define-config/1.5.1:  
3304 - resolution: {integrity: sha512-6gxrmN7aKGffaO8dCtMMKyo3IxbWymMQ248p4lf8GbaFRcLsqOXHFdUhhM0Hcy1NudvnpwHcfbDf7Nh9pIm1TA==}  
3305 - engines: {node: '>= 14.6.0', npm: '>= 6.0.0', pnpm: '>= 7.0.0'}  
3306 - dev: true  
3307 -  
3308 - /eslint-plugin-prettier/4.2.1_g4fztgbwjyq2fvmcscny2sj6fy:  
3309 - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}  
3310 - engines: {node: '>=12.0.0'}  
3311 - peerDependencies:  
3312 - eslint: '>=7.28.0'  
3313 - eslint-config-prettier: '*'  
3314 - prettier: '>=2.0.0'  
3315 - peerDependenciesMeta:  
3316 - eslint-config-prettier:  
3317 - optional: true  
3318 - dependencies:  
3319 - eslint: 8.20.0  
3320 - eslint-config-prettier: 8.5.0_eslint@8.20.0  
3321 - prettier: 2.7.1  
3322 - prettier-linter-helpers: 1.0.0  
3323 - dev: true  
3324 -  
3325 - /eslint-plugin-vue/9.2.0_eslint@8.20.0:  
3326 - resolution: {integrity: sha512-W2hc+NUXoce8sZtWgZ45miQTy6jNyuSdub5aZ1IBune4JDeAyzucYX0TzkrQ1jMO52sNUDYlCIHDoaNePe0p5g==}  
3327 - engines: {node: ^14.17.0 || >=16.0.0}  
3328 - peerDependencies:  
3329 - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0  
3330 - dependencies:  
3331 - eslint: 8.20.0  
3332 - eslint-utils: 3.0.0_eslint@8.20.0  
3333 - natural-compare: 1.4.0  
3334 - nth-check: 2.0.1  
3335 - postcss-selector-parser: 6.0.10  
3336 - semver: 7.3.7  
3337 - vue-eslint-parser: 9.0.2_eslint@8.20.0  
3338 - xml-name-validator: 4.0.0  
3339 - transitivePeerDependencies:  
3340 - - supports-color  
3341 - dev: true  
3342 -  
3343 - /eslint-scope/5.1.1:  
3344 - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}  
3345 - engines: {node: '>=8.0.0'}  
3346 - dependencies:  
3347 - esrecurse: 4.3.0  
3348 - estraverse: 4.3.0  
3349 - dev: true  
3350 -  
3351 - /eslint-scope/7.1.1:  
3352 - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}  
3353 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
3354 - dependencies:  
3355 - esrecurse: 4.3.0  
3356 - estraverse: 5.3.0  
3357 - dev: true  
3358 -  
3359 - /eslint-utils/2.1.0:  
3360 - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==}  
3361 - engines: {node: '>=6'}  
3362 - dependencies:  
3363 - eslint-visitor-keys: 1.3.0  
3364 - dev: true  
3365 -  
3366 - /eslint-utils/3.0.0_eslint@8.20.0:  
3367 - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}  
3368 - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}  
3369 - peerDependencies:  
3370 - eslint: '>=5'  
3371 - dependencies:  
3372 - eslint: 8.20.0  
3373 - eslint-visitor-keys: 2.1.0  
3374 - dev: true  
3375 -  
3376 - /eslint-visitor-keys/1.3.0:  
3377 - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}  
3378 - engines: {node: '>=4'}  
3379 - dev: true  
3380 -  
3381 - /eslint-visitor-keys/2.1.0:  
3382 - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}  
3383 - engines: {node: '>=10'}  
3384 - dev: true  
3385 -  
3386 - /eslint-visitor-keys/3.3.0:  
3387 - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}  
3388 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
3389 - dev: true  
3390 -  
3391 - /eslint/8.20.0:  
3392 - resolution: {integrity: sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==}  
3393 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
3394 - hasBin: true  
3395 - dependencies:  
3396 - '@eslint/eslintrc': 1.3.0  
3397 - '@humanwhocodes/config-array': 0.9.2  
3398 - ajv: 6.12.6  
3399 - chalk: 4.1.2  
3400 - cross-spawn: 7.0.3  
3401 - debug: 4.3.4  
3402 - doctrine: 3.0.0  
3403 - escape-string-regexp: 4.0.0  
3404 - eslint-scope: 7.1.1  
3405 - eslint-utils: 3.0.0_eslint@8.20.0  
3406 - eslint-visitor-keys: 3.3.0  
3407 - espree: 9.3.2  
3408 - esquery: 1.4.0  
3409 - esutils: 2.0.3  
3410 - fast-deep-equal: 3.1.3  
3411 - file-entry-cache: 6.0.1  
3412 - functional-red-black-tree: 1.0.1  
3413 - glob-parent: 6.0.2  
3414 - globals: 13.15.0  
3415 - ignore: 5.2.0  
3416 - import-fresh: 3.3.0  
3417 - imurmurhash: 0.1.4  
3418 - is-glob: 4.0.3  
3419 - js-yaml: 4.1.0  
3420 - json-stable-stringify-without-jsonify: 1.0.1  
3421 - levn: 0.4.1  
3422 - lodash.merge: 4.6.2  
3423 - minimatch: 3.1.2  
3424 - natural-compare: 1.4.0  
3425 - optionator: 0.9.1  
3426 - regexpp: 3.2.0  
3427 - strip-ansi: 6.0.1  
3428 - strip-json-comments: 3.1.1  
3429 - text-table: 0.2.0  
3430 - v8-compile-cache: 2.3.0  
3431 - transitivePeerDependencies:  
3432 - - supports-color  
3433 - dev: true  
3434 -  
3435 - /espree/6.2.1:  
3436 - resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==}  
3437 - engines: {node: '>=6.0.0'}  
3438 - dependencies:  
3439 - acorn: 7.4.1  
3440 - acorn-jsx: 5.3.2_acorn@7.4.1  
3441 - eslint-visitor-keys: 1.3.0  
3442 - dev: true  
3443 -  
3444 - /espree/9.3.2:  
3445 - resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==}  
3446 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}  
3447 - dependencies:  
3448 - acorn: 8.7.1  
3449 - acorn-jsx: 5.3.2_acorn@8.7.1  
3450 - eslint-visitor-keys: 3.3.0  
3451 - dev: true  
3452 -  
3453 - /esquery/1.4.0:  
3454 - resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}  
3455 - engines: {node: '>=0.10'}  
3456 - dependencies:  
3457 - estraverse: 5.3.0  
3458 - dev: true  
3459 -  
3460 - /esrecurse/4.3.0:  
3461 - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}  
3462 - engines: {node: '>=4.0'}  
3463 - dependencies:  
3464 - estraverse: 5.3.0  
3465 - dev: true  
3466 -  
3467 - /estraverse/4.3.0:  
3468 - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}  
3469 - engines: {node: '>=4.0'}  
3470 - dev: true  
3471 -  
3472 - /estraverse/5.3.0:  
3473 - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}  
3474 - engines: {node: '>=4.0'}  
3475 - dev: true  
3476 -  
3477 - /estree-walker/2.0.2:  
3478 - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}  
3479 -  
3480 - /esutils/2.0.3:  
3481 - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}  
3482 - engines: {node: '>=0.10.0'}  
3483 - dev: true  
3484 -  
3485 - /etag/1.8.1:  
3486 - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/etag/-/etag-1.8.1.tgz}  
3487 - engines: {node: '>= 0.6'}  
3488 - dev: true  
3489 -  
3490 - /event-emitter/0.3.5:  
3491 - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}  
3492 - dependencies:  
3493 - d: 1.0.1  
3494 - es5-ext: 0.10.53  
3495 - dev: false  
3496 -  
3497 - /execa/4.1.0:  
3498 - 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}  
3499 - engines: {node: '>=10'}  
3500 - dependencies:  
3501 - cross-spawn: 7.0.3  
3502 - get-stream: 5.2.0  
3503 - human-signals: 1.1.1  
3504 - is-stream: 2.0.1  
3505 - merge-stream: 2.0.0  
3506 - npm-run-path: 4.0.1  
3507 - onetime: 5.1.2  
3508 - signal-exit: 3.0.7  
3509 - strip-final-newline: 2.0.0  
3510 - dev: true  
3511 -  
3512 - /execa/5.1.1:  
3513 - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}  
3514 - engines: {node: '>=10'}  
3515 - dependencies:  
3516 - cross-spawn: 7.0.3  
3517 - get-stream: 6.0.1  
3518 - human-signals: 2.1.0  
3519 - is-stream: 2.0.1  
3520 - merge-stream: 2.0.0  
3521 - npm-run-path: 4.0.1  
3522 - onetime: 5.1.2  
3523 - signal-exit: 3.0.7  
3524 - strip-final-newline: 2.0.0  
3525 - dev: true  
3526 -  
3527 - /execa/6.1.0:  
3528 - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}  
3529 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
3530 - dependencies:  
3531 - cross-spawn: 7.0.3  
3532 - get-stream: 6.0.1  
3533 - human-signals: 3.0.1  
3534 - is-stream: 3.0.0  
3535 - merge-stream: 2.0.0  
3536 - npm-run-path: 5.1.0  
3537 - onetime: 6.0.0  
3538 - signal-exit: 3.0.7  
3539 - strip-final-newline: 3.0.0  
3540 - dev: true  
3541 -  
3542 - /execall/2.0.0:  
3543 - resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==}  
3544 - engines: {node: '>=8'}  
3545 - dependencies:  
3546 - clone-regexp: 2.2.0  
3547 - dev: true  
3548 -  
3549 - /expand-brackets/2.1.4:  
3550 - 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}  
3551 - engines: {node: '>=0.10.0'}  
3552 - dependencies:  
3553 - debug: 2.6.9  
3554 - define-property: 0.2.5  
3555 - extend-shallow: 2.0.1  
3556 - posix-character-classes: 0.1.1  
3557 - regex-not: 1.0.2  
3558 - snapdragon: 0.8.2  
3559 - to-regex: 3.0.2  
3560 - transitivePeerDependencies:  
3561 - - supports-color  
3562 - dev: true  
3563 -  
3564 - /expand-tilde/2.0.2:  
3565 - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}  
3566 - engines: {node: '>=0.10.0'}  
3567 - dependencies:  
3568 - homedir-polyfill: 1.0.3  
3569 - dev: true  
3570 -  
3571 - /ext/1.6.0:  
3572 - resolution: {integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==}  
3573 - dependencies:  
3574 - type: 2.6.0  
3575 - dev: false  
3576 -  
3577 - /extend-shallow/2.0.1:  
3578 - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}  
3579 - engines: {node: '>=0.10.0'}  
3580 - dependencies:  
3581 - is-extendable: 0.1.1  
3582 - dev: true  
3583 -  
3584 - /extend-shallow/3.0.2:  
3585 - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}  
3586 - engines: {node: '>=0.10.0'}  
3587 - dependencies:  
3588 - assign-symbols: 1.0.0  
3589 - is-extendable: 1.0.1  
3590 - dev: true  
3591 -  
3592 - /extend/3.0.2:  
3593 - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}  
3594 - dev: true  
3595 -  
3596 - /external-editor/3.1.0:  
3597 - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}  
3598 - engines: {node: '>=4'}  
3599 - dependencies:  
3600 - chardet: 0.7.0  
3601 - iconv-lite: 0.4.24  
3602 - tmp: 0.0.33  
3603 - dev: true  
3604 -  
3605 - /extglob/2.0.4:  
3606 - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/extglob/-/extglob-2.0.4.tgz}  
3607 - engines: {node: '>=0.10.0'}  
3608 - dependencies:  
3609 - array-unique: 0.3.2  
3610 - define-property: 1.0.0  
3611 - expand-brackets: 2.1.4  
3612 - extend-shallow: 2.0.1  
3613 - fragment-cache: 0.2.1  
3614 - regex-not: 1.0.2  
3615 - snapdragon: 0.8.2  
3616 - to-regex: 3.0.2  
3617 - transitivePeerDependencies:  
3618 - - supports-color  
3619 - dev: true  
3620 -  
3621 - /fast-deep-equal/3.1.3:  
3622 - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}  
3623 - dev: true  
3624 -  
3625 - /fast-diff/1.2.0:  
3626 - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}  
3627 - dev: true  
3628 -  
3629 - /fast-glob/3.2.11:  
3630 - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}  
3631 - engines: {node: '>=8.6.0'}  
3632 - dependencies:  
3633 - '@nodelib/fs.stat': 2.0.5  
3634 - '@nodelib/fs.walk': 1.2.8  
3635 - glob-parent: 5.1.2  
3636 - merge2: 1.4.1  
3637 - micromatch: 4.0.5  
3638 - dev: true  
3639 -  
3640 - /fast-json-stable-stringify/2.1.0:  
3641 - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}  
3642 - dev: true  
3643 -  
3644 - /fast-levenshtein/2.0.6:  
3645 - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}  
3646 - dev: true  
3647 -  
3648 - /fastest-levenshtein/1.0.12:  
3649 - resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==}  
3650 - dev: true  
3651 -  
3652 - /fastq/1.13.0:  
3653 - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}  
3654 - dependencies:  
3655 - reusify: 1.0.4  
3656 - dev: true  
3657 -  
3658 - /figures/3.2.0:  
3659 - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}  
3660 - engines: {node: '>=8'}  
3661 - dependencies:  
3662 - escape-string-regexp: 1.0.5  
3663 - dev: true  
3664 -  
3665 - /file-entry-cache/6.0.1:  
3666 - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}  
3667 - engines: {node: ^10.12.0 || >=12.0.0}  
3668 - dependencies:  
3669 - flat-cache: 3.0.4  
3670 - dev: true  
3671 -  
3672 - /filelist/1.0.2:  
3673 - resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/filelist/-/filelist-1.0.2.tgz}  
3674 - dependencies:  
3675 - minimatch: 3.1.2  
3676 - dev: true  
3677 -  
3678 - /fill-range/4.0.0:  
3679 - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}  
3680 - engines: {node: '>=0.10.0'}  
3681 - dependencies:  
3682 - extend-shallow: 2.0.1  
3683 - is-number: 3.0.0  
3684 - repeat-string: 1.6.1  
3685 - to-regex-range: 2.1.1  
3686 - dev: true  
3687 -  
3688 - /fill-range/7.0.1:  
3689 - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}  
3690 - engines: {node: '>=8'}  
3691 - dependencies:  
3692 - to-regex-range: 5.0.1  
3693 - dev: true  
3694 -  
3695 - /finalhandler/1.1.2:  
3696 - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}  
3697 - engines: {node: '>= 0.8'}  
3698 - dependencies:  
3699 - debug: 2.6.9  
3700 - encodeurl: 1.0.2  
3701 - escape-html: 1.0.3  
3702 - on-finished: 2.3.0  
3703 - parseurl: 1.3.3  
3704 - statuses: 1.5.0  
3705 - unpipe: 1.0.0  
3706 - transitivePeerDependencies:  
3707 - - supports-color  
3708 - dev: true  
3709 -  
3710 - /find-up/4.1.0:  
3711 - 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}  
3712 - engines: {node: '>=8'}  
3713 - dependencies:  
3714 - locate-path: 5.0.0  
3715 - path-exists: 4.0.0  
3716 -  
3717 - /find-up/5.0.0:  
3718 - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}  
3719 - engines: {node: '>=10'}  
3720 - dependencies:  
3721 - locate-path: 6.0.0  
3722 - path-exists: 4.0.0  
3723 - dev: true  
3724 -  
3725 - /findup-sync/5.0.0:  
3726 - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==}  
3727 - engines: {node: '>= 10.13.0'}  
3728 - dependencies:  
3729 - detect-file: 1.0.0  
3730 - is-glob: 4.0.3  
3731 - micromatch: 4.0.5  
3732 - resolve-dir: 1.0.1  
3733 - dev: true  
3734 -  
3735 - /fined/2.0.0:  
3736 - resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==}  
3737 - engines: {node: '>= 10.13.0'}  
3738 - dependencies:  
3739 - expand-tilde: 2.0.2  
3740 - is-plain-object: 5.0.0  
3741 - object.defaults: 1.1.0  
3742 - object.pick: 1.3.0  
3743 - parse-filepath: 1.0.2  
3744 - dev: true  
3745 -  
3746 - /flagged-respawn/2.0.0:  
3747 - resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==}  
3748 - engines: {node: '>= 10.13.0'}  
3749 - dev: true  
3750 -  
3751 - /flat-cache/3.0.4:  
3752 - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}  
3753 - engines: {node: ^10.12.0 || >=12.0.0}  
3754 - dependencies:  
3755 - flatted: 3.2.4  
3756 - rimraf: 3.0.2  
3757 - dev: true  
3758 -  
3759 - /flatted/3.2.4:  
3760 - resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==}  
3761 - dev: true  
3762 -  
3763 - /follow-redirects/1.14.9:  
3764 - resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==}  
3765 - engines: {node: '>=4.0'}  
3766 - peerDependencies:  
3767 - debug: '*'  
3768 - peerDependenciesMeta:  
3769 - debug:  
3770 - optional: true  
3771 -  
3772 - /for-in/1.0.2:  
3773 - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}  
3774 - engines: {node: '>=0.10.0'}  
3775 - dev: true  
3776 -  
3777 - /for-own/1.0.0:  
3778 - resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==}  
3779 - engines: {node: '>=0.10.0'}  
3780 - dependencies:  
3781 - for-in: 1.0.2  
3782 - dev: true  
3783 -  
3784 - /form-data/4.0.0:  
3785 - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}  
3786 - engines: {node: '>= 6'}  
3787 - dependencies:  
3788 - asynckit: 0.4.0  
3789 - combined-stream: 1.0.8  
3790 - mime-types: 2.1.35  
3791 - dev: false  
3792 -  
3793 - /fraction.js/4.2.0:  
3794 - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}  
3795 - dev: true  
3796 -  
3797 - /fragment-cache/0.2.1:  
3798 - 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}  
3799 - engines: {node: '>=0.10.0'}  
3800 - dependencies:  
3801 - map-cache: 0.2.2  
3802 - dev: true  
3803 -  
3804 - /fs-extra/10.0.0:  
3805 - resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/fs-extra/-/fs-extra-10.0.0.tgz}  
3806 - engines: {node: '>=12'}  
3807 - dependencies:  
3808 - graceful-fs: 4.2.8  
3809 - jsonfile: 6.1.0  
3810 - universalify: 2.0.0  
3811 - dev: true  
3812 -  
3813 - /fs-extra/10.0.1:  
3814 - resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==}  
3815 - engines: {node: '>=12'}  
3816 - dependencies:  
3817 - graceful-fs: 4.2.8  
3818 - jsonfile: 6.1.0  
3819 - universalify: 2.0.0  
3820 - dev: true  
3821 -  
3822 - /fs.realpath/1.0.0:  
3823 - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}  
3824 - dev: true  
3825 -  
3826 - /fsevents/2.3.2:  
3827 - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}  
3828 - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}  
3829 - os: [darwin]  
3830 - requiresBuild: true  
3831 - dev: true  
3832 - optional: true  
3833 -  
3834 - /function-bind/1.1.1:  
3835 - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}  
3836 -  
3837 - /functional-red-black-tree/1.0.1:  
3838 - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==}  
3839 - dev: true  
3840 -  
3841 - /gensync/1.0.0-beta.2:  
3842 - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}  
3843 - engines: {node: '>=6.9.0'}  
3844 - dev: true  
3845 -  
3846 - /get-caller-file/2.0.5:  
3847 - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}  
3848 - engines: {node: 6.* || 8.* || >= 10.*}  
3849 -  
3850 - /get-intrinsic/1.1.1:  
3851 - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}  
3852 - dependencies:  
3853 - function-bind: 1.1.1  
3854 - has: 1.0.3  
3855 - has-symbols: 1.0.2  
3856 - dev: false  
3857 -  
3858 - /get-stdin/8.0.0:  
3859 - resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==}  
3860 - engines: {node: '>=10'}  
3861 - dev: true  
3862 -  
3863 - /get-stream/5.2.0:  
3864 - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}  
3865 - engines: {node: '>=8'}  
3866 - dependencies:  
3867 - pump: 3.0.0  
3868 - dev: true  
3869 -  
3870 - /get-stream/6.0.1:  
3871 - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}  
3872 - engines: {node: '>=10'}  
3873 - dev: true  
3874 -  
3875 - /get-value/2.0.6:  
3876 - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/get-value/-/get-value-2.0.6.tgz}  
3877 - engines: {node: '>=0.10.0'}  
3878 - dev: true  
3879 -  
3880 - /git-raw-commits/2.0.11:  
3881 - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}  
3882 - engines: {node: '>=10'}  
3883 - hasBin: true  
3884 - dependencies:  
3885 - dargs: 7.0.0  
3886 - lodash: 4.17.21  
3887 - meow: 8.1.2  
3888 - split2: 3.2.2  
3889 - through2: 4.0.2  
3890 - dev: true  
3891 -  
3892 - /glob-parent/5.1.2:  
3893 - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}  
3894 - engines: {node: '>= 6'}  
3895 - dependencies:  
3896 - is-glob: 4.0.3  
3897 - dev: true  
3898 -  
3899 - /glob-parent/6.0.2:  
3900 - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}  
3901 - engines: {node: '>=10.13.0'}  
3902 - dependencies:  
3903 - is-glob: 4.0.3  
3904 - dev: true  
3905 -  
3906 - /glob/7.2.0:  
3907 - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}  
3908 - dependencies:  
3909 - fs.realpath: 1.0.0  
3910 - inflight: 1.0.6  
3911 - inherits: 2.0.4  
3912 - minimatch: 3.1.2  
3913 - once: 1.4.0  
3914 - path-is-absolute: 1.0.1  
3915 - dev: true  
3916 -  
3917 - /global-dirs/0.1.1:  
3918 - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}  
3919 - engines: {node: '>=4'}  
3920 - dependencies:  
3921 - ini: 1.3.8  
3922 - dev: true  
3923 -  
3924 - /global-modules/1.0.0:  
3925 - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}  
3926 - engines: {node: '>=0.10.0'}  
3927 - dependencies:  
3928 - global-prefix: 1.0.2  
3929 - is-windows: 1.0.2  
3930 - resolve-dir: 1.0.1  
3931 - dev: true  
3932 -  
3933 - /global-modules/2.0.0:  
3934 - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}  
3935 - engines: {node: '>=6'}  
3936 - dependencies:  
3937 - global-prefix: 3.0.0  
3938 - dev: true  
3939 -  
3940 - /global-prefix/1.0.2:  
3941 - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}  
3942 - engines: {node: '>=0.10.0'}  
3943 - dependencies:  
3944 - expand-tilde: 2.0.2  
3945 - homedir-polyfill: 1.0.3  
3946 - ini: 1.3.8  
3947 - is-windows: 1.0.2  
3948 - which: 1.3.1  
3949 - dev: true  
3950 -  
3951 - /global-prefix/3.0.0:  
3952 - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}  
3953 - engines: {node: '>=6'}  
3954 - dependencies:  
3955 - ini: 1.3.8  
3956 - kind-of: 6.0.3  
3957 - which: 1.3.1  
3958 - dev: true  
3959 -  
3960 - /globals/11.12.0:  
3961 - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}  
3962 - engines: {node: '>=4'}  
3963 - dev: true  
3964 -  
3965 - /globals/13.15.0:  
3966 - resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==}  
3967 - engines: {node: '>=8'}  
3968 - dependencies:  
3969 - type-fest: 0.20.2  
3970 - dev: true  
3971 -  
3972 - /globby/11.1.0:  
3973 - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}  
3974 - engines: {node: '>=10'}  
3975 - dependencies:  
3976 - array-union: 2.1.0  
3977 - dir-glob: 3.0.1  
3978 - fast-glob: 3.2.11  
3979 - ignore: 5.2.0  
3980 - merge2: 1.4.1  
3981 - slash: 3.0.0  
3982 - dev: true  
3983 -  
3984 - /globby/13.1.1:  
3985 - resolution: {integrity: sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==}  
3986 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
3987 - dependencies:  
3988 - dir-glob: 3.0.1  
3989 - fast-glob: 3.2.11  
3990 - ignore: 5.2.0  
3991 - merge2: 1.4.1  
3992 - slash: 4.0.0  
3993 - dev: true  
3994 -  
3995 - /globjoin/0.1.4:  
3996 - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}  
3997 - dev: true  
3998 -  
3999 - /graceful-fs/4.2.8:  
4000 - resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==}  
4001 - requiresBuild: true  
4002 - dev: true  
4003 -  
4004 - /handlebars/4.7.7:  
4005 - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}  
4006 - engines: {node: '>=0.4.7'}  
4007 - hasBin: true  
4008 - dependencies:  
4009 - minimist: 1.2.6  
4010 - neo-async: 2.6.2  
4011 - source-map: 0.6.1  
4012 - wordwrap: 1.0.0  
4013 - optionalDependencies:  
4014 - uglify-js: 3.15.3  
4015 - dev: true  
4016 -  
4017 - /hard-rejection/2.1.0:  
4018 - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}  
4019 - engines: {node: '>=6'}  
4020 - dev: true  
4021 -  
4022 - /has-ansi/2.0.0:  
4023 - 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}  
4024 - engines: {node: '>=0.10.0'}  
4025 - dependencies:  
4026 - ansi-regex: 2.1.1  
4027 - dev: true  
4028 -  
4029 - /has-flag/1.0.0:  
4030 - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==}  
4031 - engines: {node: '>=0.10.0'}  
4032 - dev: true  
4033 -  
4034 - /has-flag/3.0.0:  
4035 - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}  
4036 - engines: {node: '>=4'}  
4037 - dev: true  
4038 -  
4039 - /has-flag/4.0.0:  
4040 - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}  
4041 - engines: {node: '>=8'}  
4042 - dev: true  
4043 -  
4044 - /has-symbols/1.0.2:  
4045 - resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==}  
4046 - engines: {node: '>= 0.4'}  
4047 - dev: false  
4048 -  
4049 - /has-value/0.3.1:  
4050 - 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}  
4051 - engines: {node: '>=0.10.0'}  
4052 - dependencies:  
4053 - get-value: 2.0.6  
4054 - has-values: 0.1.4  
4055 - isobject: 2.1.0  
4056 - dev: true  
4057 -  
4058 - /has-value/1.0.0:  
4059 - 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}  
4060 - engines: {node: '>=0.10.0'}  
4061 - dependencies:  
4062 - get-value: 2.0.6  
4063 - has-values: 1.0.0  
4064 - isobject: 3.0.1  
4065 - dev: true  
4066 -  
4067 - /has-values/0.1.4:  
4068 - 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}  
4069 - engines: {node: '>=0.10.0'}  
4070 - dev: true  
4071 -  
4072 - /has-values/1.0.0:  
4073 - 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}  
4074 - engines: {node: '>=0.10.0'}  
4075 - dependencies:  
4076 - is-number: 3.0.0  
4077 - kind-of: 4.0.0  
4078 - dev: true  
4079 -  
4080 - /has/1.0.3:  
4081 - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}  
4082 - engines: {node: '>= 0.4.0'}  
4083 - dependencies:  
4084 - function-bind: 1.1.1  
4085 -  
4086 - /he/1.2.0:  
4087 - 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}  
4088 - hasBin: true  
4089 - dev: true  
4090 -  
4091 - /header-case/2.0.4:  
4092 - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}  
4093 - dependencies:  
4094 - capital-case: 1.0.4  
4095 - tslib: 2.3.1  
4096 - dev: true  
4097 -  
4098 - /homedir-polyfill/1.0.3:  
4099 - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}  
4100 - engines: {node: '>=0.10.0'}  
4101 - dependencies:  
4102 - parse-passwd: 1.0.0  
4103 - dev: true  
4104 -  
4105 - /hosted-git-info/2.8.9:  
4106 - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}  
4107 - dev: true  
4108 -  
4109 - /hosted-git-info/4.0.2:  
4110 - resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==}  
4111 - engines: {node: '>=10'}  
4112 - dependencies:  
4113 - lru-cache: 6.0.0  
4114 - dev: true  
4115 -  
4116 - /html-minifier-terser/6.1.0:  
4117 - 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}  
4118 - engines: {node: '>=12'}  
4119 - hasBin: true  
4120 - dependencies:  
4121 - camel-case: 4.1.2  
4122 - clean-css: 5.2.4  
4123 - commander: 8.3.0  
4124 - he: 1.2.0  
4125 - param-case: 3.0.4  
4126 - relateurl: 0.2.7  
4127 - terser: 5.10.0  
4128 - dev: true  
4129 -  
4130 - /html-tags/3.2.0:  
4131 - resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==}  
4132 - engines: {node: '>=8'}  
4133 - dev: true  
4134 -  
4135 - /html-void-elements/2.0.1:  
4136 - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}  
4137 - dev: false  
4138 -  
4139 - /htmlparser2/3.10.1:  
4140 - resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}  
4141 - dependencies:  
4142 - domelementtype: 1.3.1  
4143 - domhandler: 2.4.2  
4144 - domutils: 1.7.0  
4145 - entities: 1.1.2  
4146 - inherits: 2.0.4  
4147 - readable-stream: 3.6.0  
4148 - dev: true  
4149 -  
4150 - /htmlparser2/6.1.0:  
4151 - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}  
4152 - dependencies:  
4153 - domelementtype: 2.3.0  
4154 - domhandler: 4.3.1  
4155 - domutils: 2.8.0  
4156 - entities: 2.2.0  
4157 - dev: true  
4158 -  
4159 - /htmlparser2/8.0.1:  
4160 - resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==}  
4161 - dependencies:  
4162 - domelementtype: 2.3.0  
4163 - domhandler: 5.0.3  
4164 - domutils: 3.0.1  
4165 - entities: 4.3.1  
4166 - dev: true  
4167 -  
4168 - /human-signals/1.1.1:  
4169 - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}  
4170 - engines: {node: '>=8.12.0'}  
4171 - dev: true  
4172 -  
4173 - /human-signals/2.1.0:  
4174 - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}  
4175 - engines: {node: '>=10.17.0'}  
4176 - dev: true  
4177 -  
4178 - /human-signals/3.0.1:  
4179 - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}  
4180 - engines: {node: '>=12.20.0'}  
4181 - dev: true  
4182 -  
4183 - /i18next/20.6.1:  
4184 - resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}  
4185 - dependencies:  
4186 - '@babel/runtime': 7.17.2  
4187 - dev: false  
4188 -  
4189 - /iconv-lite/0.4.24:  
4190 - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}  
4191 - engines: {node: '>=0.10.0'}  
4192 - dependencies:  
4193 - safer-buffer: 2.1.2  
4194 - dev: true  
4195 -  
4196 - /iconv-lite/0.6.3:  
4197 - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}  
4198 - engines: {node: '>=0.10.0'}  
4199 - dependencies:  
4200 - safer-buffer: 2.1.2  
4201 - dev: true  
4202 - optional: true  
4203 -  
4204 - /ieee754/1.2.1:  
4205 - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}  
4206 - dev: true  
4207 -  
4208 - /ignore/5.2.0:  
4209 - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}  
4210 - engines: {node: '>= 4'}  
4211 - dev: true  
4212 -  
4213 - /image-size/0.5.5:  
4214 - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}  
4215 - engines: {node: '>=0.10.0'}  
4216 - hasBin: true  
4217 - requiresBuild: true  
4218 - dev: true  
4219 -  
4220 - /immer/9.0.12:  
4221 - resolution: {integrity: sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==}  
4222 - dev: false  
4223 -  
4224 - /import-fresh/3.3.0:  
4225 - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}  
4226 - engines: {node: '>=6'}  
4227 - dependencies:  
4228 - parent-module: 1.0.1  
4229 - resolve-from: 4.0.0  
4230 - dev: true  
4231 -  
4232 - /import-lazy/4.0.0:  
4233 - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}  
4234 - engines: {node: '>=8'}  
4235 - dev: true  
4236 -  
4237 - /imurmurhash/0.1.4:  
4238 - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}  
4239 - engines: {node: '>=0.8.19'}  
4240 - dev: true  
4241 -  
4242 - /indent-string/4.0.0:  
4243 - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}  
4244 - engines: {node: '>=8'}  
4245 - dev: true  
4246 -  
4247 - /inflight/1.0.6:  
4248 - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}  
4249 - dependencies:  
4250 - once: 1.4.0  
4251 - wrappy: 1.0.2  
4252 - dev: true  
4253 -  
4254 - /inherits/2.0.4:  
4255 - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}  
4256 - dev: true  
4257 -  
4258 - /ini/1.3.8:  
4259 - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}  
4260 - dev: true  
4261 -  
4262 - /inquirer/8.2.2:  
4263 - resolution: {integrity: sha512-pG7I/si6K/0X7p1qU+rfWnpTE1UIkTONN1wxtzh0d+dHXtT/JG6qBgLxoyHVsQa8cFABxAPh0pD6uUUHiAoaow==}  
4264 - engines: {node: '>=12.0.0'}  
4265 - dependencies:  
4266 - ansi-escapes: 4.3.2  
4267 - chalk: 4.1.2  
4268 - cli-cursor: 3.1.0  
4269 - cli-width: 3.0.0  
4270 - external-editor: 3.1.0  
4271 - figures: 3.2.0  
4272 - lodash: 4.17.21  
4273 - mute-stream: 0.0.8  
4274 - ora: 5.4.1  
4275 - run-async: 2.4.1  
4276 - rxjs: 7.5.5  
4277 - string-width: 4.2.3  
4278 - strip-ansi: 6.0.1  
4279 - through: 2.3.8  
4280 - dev: true  
4281 -  
4282 - /interpret/2.2.0:  
4283 - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==}  
4284 - engines: {node: '>= 0.10'}  
4285 - dev: true  
4286 -  
4287 - /intro.js/6.0.0:  
4288 - resolution: {integrity: sha512-ZUiR6BoLSvPSlLG0boewnWVgji1fE1gBvP/pyw5pgCKXEDQz1mMeUxarggClPNs71UTq364LwSk9zxz17A9gaQ==}  
4289 - dev: false  
4290 -  
4291 - /is-absolute/1.0.0:  
4292 - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}  
4293 - engines: {node: '>=0.10.0'}  
4294 - dependencies:  
4295 - is-relative: 1.0.0  
4296 - is-windows: 1.0.2  
4297 - dev: true  
4298 -  
4299 - /is-accessor-descriptor/0.1.6:  
4300 - 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}  
4301 - engines: {node: '>=0.10.0'}  
4302 - dependencies:  
4303 - kind-of: 3.2.2  
4304 - dev: true  
4305 -  
4306 - /is-accessor-descriptor/1.0.0:  
4307 - 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}  
4308 - engines: {node: '>=0.10.0'}  
4309 - dependencies:  
4310 - kind-of: 6.0.3  
4311 - dev: true  
4312 -  
4313 - /is-arrayish/0.2.1:  
4314 - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}  
4315 - dev: true  
4316 -  
4317 - /is-binary-path/2.1.0:  
4318 - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}  
4319 - engines: {node: '>=8'}  
4320 - dependencies:  
4321 - binary-extensions: 2.2.0  
4322 - dev: true  
4323 -  
4324 - /is-buffer/1.1.6:  
4325 - 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}  
4326 - dev: true  
4327 -  
4328 - /is-core-module/2.8.1:  
4329 - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}  
4330 - dependencies:  
4331 - has: 1.0.3  
4332 - dev: true  
4333 -  
4334 - /is-core-module/2.9.0:  
4335 - resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}  
4336 - dependencies:  
4337 - has: 1.0.3  
4338 - dev: true  
4339 -  
4340 - /is-data-descriptor/0.1.4:  
4341 - 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}  
4342 - engines: {node: '>=0.10.0'}  
4343 - dependencies:  
4344 - kind-of: 3.2.2  
4345 - dev: true  
4346 -  
4347 - /is-data-descriptor/1.0.0:  
4348 - 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}  
4349 - engines: {node: '>=0.10.0'}  
4350 - dependencies:  
4351 - kind-of: 6.0.3  
4352 - dev: true  
4353 -  
4354 - /is-descriptor/0.1.6:  
4355 - 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}  
4356 - engines: {node: '>=0.10.0'}  
4357 - dependencies:  
4358 - is-accessor-descriptor: 0.1.6  
4359 - is-data-descriptor: 0.1.4  
4360 - kind-of: 5.1.0  
4361 - dev: true  
4362 -  
4363 - /is-descriptor/1.0.2:  
4364 - 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}  
4365 - engines: {node: '>=0.10.0'}  
4366 - dependencies:  
4367 - is-accessor-descriptor: 1.0.0  
4368 - is-data-descriptor: 1.0.0  
4369 - kind-of: 6.0.3  
4370 - dev: true  
4371 -  
4372 - /is-extendable/0.1.1:  
4373 - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}  
4374 - engines: {node: '>=0.10.0'}  
4375 - dev: true  
4376 -  
4377 - /is-extendable/1.0.1:  
4378 - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}  
4379 - engines: {node: '>=0.10.0'}  
4380 - dependencies:  
4381 - is-plain-object: 2.0.4  
4382 - dev: true  
4383 -  
4384 - /is-extglob/2.1.1:  
4385 - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}  
4386 - engines: {node: '>=0.10.0'}  
4387 - dev: true  
4388 -  
4389 - /is-fullwidth-code-point/3.0.0:  
4390 - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}  
4391 - engines: {node: '>=8'}  
4392 -  
4393 - /is-fullwidth-code-point/4.0.0:  
4394 - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}  
4395 - engines: {node: '>=12'}  
4396 - dev: true  
4397 -  
4398 - /is-glob/4.0.3:  
4399 - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}  
4400 - engines: {node: '>=0.10.0'}  
4401 - dependencies:  
4402 - is-extglob: 2.1.1  
4403 - dev: true  
4404 -  
4405 - /is-hotkey/0.2.0:  
4406 - resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==}  
4407 - dev: false  
4408 -  
4409 - /is-interactive/1.0.0:  
4410 - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}  
4411 - engines: {node: '>=8'}  
4412 - dev: true  
4413 -  
4414 - /is-interactive/2.0.0:  
4415 - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}  
4416 - engines: {node: '>=12'}  
4417 - dev: true  
4418 -  
4419 - /is-number/3.0.0:  
4420 - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}  
4421 - engines: {node: '>=0.10.0'}  
4422 - dependencies:  
4423 - kind-of: 3.2.2  
4424 - dev: true  
4425 -  
4426 - /is-number/7.0.0:  
4427 - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}  
4428 - engines: {node: '>=0.12.0'}  
4429 - dev: true  
4430 -  
4431 - /is-obj/2.0.0:  
4432 - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}  
4433 - engines: {node: '>=8'}  
4434 - dev: true  
4435 -  
4436 - /is-path-cwd/2.2.0:  
4437 - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}  
4438 - engines: {node: '>=6'}  
4439 - dev: true  
4440 -  
4441 - /is-path-inside/3.0.3:  
4442 - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}  
4443 - engines: {node: '>=8'}  
4444 - dev: true  
4445 -  
4446 - /is-plain-obj/1.1.0:  
4447 - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}  
4448 - engines: {node: '>=0.10.0'}  
4449 - dev: true  
4450 -  
4451 - /is-plain-object/2.0.4:  
4452 - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}  
4453 - engines: {node: '>=0.10.0'}  
4454 - dependencies:  
4455 - isobject: 3.0.1  
4456 - dev: true  
4457 -  
4458 - /is-plain-object/5.0.0:  
4459 - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}  
4460 - engines: {node: '>=0.10.0'}  
4461 -  
4462 - /is-regexp/2.1.0:  
4463 - resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==}  
4464 - engines: {node: '>=6'}  
4465 - dev: true  
4466 -  
4467 - /is-relative/1.0.0:  
4468 - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}  
4469 - engines: {node: '>=0.10.0'}  
4470 - dependencies:  
4471 - is-unc-path: 1.0.0  
4472 - dev: true  
4473 -  
4474 - /is-stream/2.0.1:  
4475 - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}  
4476 - engines: {node: '>=8'}  
4477 - dev: true  
4478 -  
4479 - /is-stream/3.0.0:  
4480 - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}  
4481 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
4482 - dev: true  
4483 -  
4484 - /is-text-path/1.0.1:  
4485 - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}  
4486 - engines: {node: '>=0.10.0'}  
4487 - dependencies:  
4488 - text-extensions: 1.9.0  
4489 - dev: true  
4490 -  
4491 - /is-unc-path/1.0.0:  
4492 - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}  
4493 - engines: {node: '>=0.10.0'}  
4494 - dependencies:  
4495 - unc-path-regex: 0.1.2  
4496 - dev: true  
4497 -  
4498 - /is-unicode-supported/0.1.0:  
4499 - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}  
4500 - engines: {node: '>=10'}  
4501 - dev: true  
4502 -  
4503 - /is-unicode-supported/1.2.0:  
4504 - resolution: {integrity: sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==}  
4505 - engines: {node: '>=12'}  
4506 - dev: true  
4507 -  
4508 - /is-url/1.2.4:  
4509 - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}  
4510 - dev: false  
4511 -  
4512 - /is-what/3.14.1:  
4513 - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==}  
4514 - dev: true  
4515 -  
4516 - /is-windows/1.0.2:  
4517 - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}  
4518 - engines: {node: '>=0.10.0'}  
4519 - dev: true  
4520 -  
4521 - /isarray/1.0.0:  
4522 - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}  
4523 - dev: true  
4524 -  
4525 - /isbinaryfile/4.0.10:  
4526 - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}  
4527 - engines: {node: '>= 8.0.0'}  
4528 - dev: true  
4529 -  
4530 - /isexe/2.0.0:  
4531 - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}  
4532 - dev: true  
4533 -  
4534 - /isobject/2.1.0:  
4535 - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}  
4536 - engines: {node: '>=0.10.0'}  
4537 - dependencies:  
4538 - isarray: 1.0.0  
4539 - dev: true  
4540 -  
4541 - /isobject/3.0.1:  
4542 - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}  
4543 - engines: {node: '>=0.10.0'}  
4544 - dev: true  
4545 -  
4546 - /jake/10.8.2:  
4547 - resolution: {integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/jake/-/jake-10.8.2.tgz}  
4548 - hasBin: true  
4549 - dependencies:  
4550 - async: 0.9.2  
4551 - chalk: 2.4.2  
4552 - filelist: 1.0.2  
4553 - minimatch: 3.1.2  
4554 - dev: true  
4555 -  
4556 - /jiti/1.14.0:  
4557 - resolution: {integrity: sha512-4IwstlaKQc9vCTC+qUXLM1hajy2ImiL9KnLvVYiaHOtS/v3wRjhLlGl121AmgDgx/O43uKmxownJghS5XMya2A==}  
4558 - hasBin: true  
4559 - dev: true  
4560 -  
4561 - /js-base64/2.6.4:  
4562 - resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}  
4563 - dev: true  
4564 -  
4565 - /js-tokens/4.0.0:  
4566 - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}  
4567 - dev: true  
4568 -  
4569 - /js-tokens/8.0.0:  
4570 - resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==}  
4571 - dev: true  
4572 -  
4573 - /js-yaml/4.1.0:  
4574 - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}  
4575 - hasBin: true  
4576 - dependencies:  
4577 - argparse: 2.0.1  
4578 - dev: true  
4579 -  
4580 - /jsesc/2.5.2:  
4581 - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}  
4582 - engines: {node: '>=4'}  
4583 - hasBin: true  
4584 - dev: true  
4585 -  
4586 - /json-parse-even-better-errors/2.3.1:  
4587 - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}  
4588 - dev: true  
4589 -  
4590 - /json-schema-traverse/0.4.1:  
4591 - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}  
4592 - dev: true  
4593 -  
4594 - /json-schema-traverse/1.0.0:  
4595 - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}  
4596 - dev: true  
4597 -  
4598 - /json-stable-stringify-without-jsonify/1.0.1:  
4599 - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}  
4600 - dev: true  
4601 -  
4602 - /json5/1.0.1:  
4603 - resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}  
4604 - hasBin: true  
4605 - dependencies:  
4606 - minimist: 1.2.6  
4607 - dev: true  
4608 -  
4609 - /json5/2.2.1:  
4610 - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}  
4611 - engines: {node: '>=6'}  
4612 - hasBin: true  
4613 - dev: true  
4614 -  
4615 - /jsonc-eslint-parser/1.4.1:  
4616 - resolution: {integrity: sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==}  
4617 - engines: {node: '>=8.10.0'}  
4618 - dependencies:  
4619 - acorn: 7.4.1  
4620 - eslint-utils: 2.1.0  
4621 - eslint-visitor-keys: 1.3.0  
4622 - espree: 6.2.1  
4623 - semver: 6.3.0  
4624 - dev: true  
4625 -  
4626 - /jsonfile/6.1.0:  
4627 - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}  
4628 - dependencies:  
4629 - universalify: 2.0.0  
4630 - optionalDependencies:  
4631 - graceful-fs: 4.2.8  
4632 - dev: true  
4633 -  
4634 - /jsonparse/1.3.1:  
4635 - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}  
4636 - engines: {'0': node >= 0.2.0}  
4637 - dev: true  
4638 -  
4639 - /kind-of/3.2.2:  
4640 - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}  
4641 - engines: {node: '>=0.10.0'}  
4642 - dependencies:  
4643 - is-buffer: 1.1.6  
4644 - dev: true  
4645 -  
4646 - /kind-of/4.0.0:  
4647 - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}  
4648 - engines: {node: '>=0.10.0'}  
4649 - dependencies:  
4650 - is-buffer: 1.1.6  
4651 - dev: true  
4652 -  
4653 - /kind-of/5.1.0:  
4654 - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}  
4655 - engines: {node: '>=0.10.0'}  
4656 - dev: true  
4657 -  
4658 - /kind-of/6.0.3:  
4659 - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}  
4660 - engines: {node: '>=0.10.0'}  
4661 - dev: true  
4662 -  
4663 - /known-css-properties/0.25.0:  
4664 - resolution: {integrity: sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==}  
4665 - dev: true  
4666 -  
4667 - /kolorist/1.5.1:  
4668 - resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==}  
4669 - dev: true  
4670 -  
4671 - /less/4.1.3:  
4672 - resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==}  
4673 - engines: {node: '>=6'}  
4674 - hasBin: true  
4675 - dependencies:  
4676 - copy-anything: 2.0.3  
4677 - parse-node-version: 1.0.1  
4678 - tslib: 2.3.1  
4679 - optionalDependencies:  
4680 - errno: 0.1.8  
4681 - graceful-fs: 4.2.8  
4682 - image-size: 0.5.5  
4683 - make-dir: 2.1.0  
4684 - mime: 1.6.0  
4685 - needle: 3.1.0  
4686 - source-map: 0.6.1  
4687 - transitivePeerDependencies:  
4688 - - supports-color  
4689 - dev: true  
4690 -  
4691 - /levn/0.4.1:  
4692 - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}  
4693 - engines: {node: '>= 0.8.0'}  
4694 - dependencies:  
4695 - prelude-ls: 1.2.1  
4696 - type-check: 0.4.0  
4697 - dev: true  
4698 -  
4699 - /liftoff/4.0.0:  
4700 - resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==}  
4701 - engines: {node: '>=10.13.0'}  
4702 - dependencies:  
4703 - extend: 3.0.2  
4704 - findup-sync: 5.0.0  
4705 - fined: 2.0.0  
4706 - flagged-respawn: 2.0.0  
4707 - is-plain-object: 5.0.0  
4708 - object.map: 1.0.1  
4709 - rechoir: 0.8.0  
4710 - resolve: 1.22.1  
4711 - dev: true  
4712 -  
4713 - /lilconfig/2.0.5:  
4714 - resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==}  
4715 - engines: {node: '>=10'}  
4716 - dev: true  
4717 -  
4718 - /lines-and-columns/1.2.4:  
4719 - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}  
4720 - dev: true  
4721 -  
4722 - /lint-staged/13.0.3:  
4723 - resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==}  
4724 - engines: {node: ^14.13.1 || >=16.0.0}  
4725 - hasBin: true  
4726 - dependencies:  
4727 - cli-truncate: 3.1.0  
4728 - colorette: 2.0.17  
4729 - commander: 9.3.0  
4730 - debug: 4.3.4  
4731 - execa: 6.1.0  
4732 - lilconfig: 2.0.5  
4733 - listr2: 4.0.5  
4734 - micromatch: 4.0.5  
4735 - normalize-path: 3.0.0  
4736 - object-inspect: 1.12.2  
4737 - pidtree: 0.6.0  
4738 - string-argv: 0.3.1  
4739 - yaml: 2.1.1  
4740 - transitivePeerDependencies:  
4741 - - enquirer  
4742 - - supports-color  
4743 - dev: true  
4744 -  
4745 - /listr2/4.0.5:  
4746 - resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==}  
4747 - engines: {node: '>=12'}  
4748 - peerDependencies:  
4749 - enquirer: '>= 2.3.0 < 3'  
4750 - peerDependenciesMeta:  
4751 - enquirer:  
4752 - optional: true  
4753 - dependencies:  
4754 - cli-truncate: 2.1.0  
4755 - colorette: 2.0.17  
4756 - log-update: 4.0.0  
4757 - p-map: 4.0.0  
4758 - rfdc: 1.3.0  
4759 - rxjs: 7.5.5  
4760 - through: 2.3.8  
4761 - wrap-ansi: 7.0.0  
4762 - dev: true  
4763 -  
4764 - /loader-utils/1.4.0:  
4765 - 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}  
4766 - engines: {node: '>=4.0.0'}  
4767 - dependencies:  
4768 - big.js: 5.2.2  
4769 - emojis-list: 3.0.0  
4770 - json5: 1.0.1  
4771 - dev: true  
4772 -  
4773 - /locate-path/5.0.0:  
4774 - 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}  
4775 - engines: {node: '>=8'}  
4776 - dependencies:  
4777 - p-locate: 4.1.0  
4778 -  
4779 - /locate-path/6.0.0:  
4780 - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}  
4781 - engines: {node: '>=10'}  
4782 - dependencies:  
4783 - p-locate: 5.0.0  
4784 - dev: true  
4785 -  
4786 - /lodash-es/4.17.21:  
4787 - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}  
4788 - dev: false  
4789 -  
4790 - /lodash-unified/1.0.2_3ib2ivapxullxkx3xftsimdk7u:  
4791 - resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==}  
4792 - peerDependencies:  
4793 - '@types/lodash-es': '*'  
4794 - lodash: '*'  
4795 - lodash-es: '*'  
4796 - dependencies:  
4797 - '@types/lodash-es': 4.17.6  
4798 - lodash: 4.17.21  
4799 - lodash-es: 4.17.21  
4800 - dev: false  
4801 -  
4802 - /lodash.camelcase/4.3.0:  
4803 - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}  
4804 - dev: false  
4805 -  
4806 - /lodash.clonedeep/4.5.0:  
4807 - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}  
4808 - dev: false  
4809 -  
4810 - /lodash.debounce/4.0.8:  
4811 - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}  
4812 - dev: false  
4813 -  
4814 - /lodash.foreach/4.5.0:  
4815 - resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}  
4816 - dev: false  
4817 -  
4818 - /lodash.get/4.4.2:  
4819 - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}  
4820 - dev: true  
4821 -  
4822 - /lodash.isequal/4.5.0:  
4823 - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}  
4824 - dev: false  
4825 -  
4826 - /lodash.merge/4.6.2:  
4827 - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}  
4828 - dev: true  
4829 -  
4830 - /lodash.throttle/4.1.1:  
4831 - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}  
4832 - dev: false  
4833 -  
4834 - /lodash.toarray/4.4.0:  
4835 - resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==}  
4836 - dev: false  
4837 -  
4838 - /lodash.truncate/4.4.2:  
4839 - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}  
4840 - dev: true  
4841 -  
4842 - /lodash/4.17.21:  
4843 - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}  
4844 -  
4845 - /log-symbols/4.1.0:  
4846 - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}  
4847 - engines: {node: '>=10'}  
4848 - dependencies:  
4849 - chalk: 4.1.2  
4850 - is-unicode-supported: 0.1.0  
4851 - dev: true  
4852 -  
4853 - /log-symbols/5.1.0:  
4854 - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==}  
4855 - engines: {node: '>=12'}  
4856 - dependencies:  
4857 - chalk: 5.0.1  
4858 - is-unicode-supported: 1.2.0  
4859 - dev: true  
4860 -  
4861 - /log-update/4.0.0:  
4862 - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}  
4863 - engines: {node: '>=10'}  
4864 - dependencies:  
4865 - ansi-escapes: 4.3.2  
4866 - cli-cursor: 3.1.0  
4867 - slice-ansi: 4.0.0  
4868 - wrap-ansi: 6.2.0  
4869 - dev: true  
4870 -  
4871 - /lower-case/2.0.2:  
4872 - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}  
4873 - dependencies:  
4874 - tslib: 2.3.1  
4875 - dev: true  
4876 -  
4877 - /lru-cache/6.0.0:  
4878 - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}  
4879 - engines: {node: '>=10'}  
4880 - dependencies:  
4881 - yallist: 4.0.0  
4882 - dev: true  
4883 -  
4884 - /magic-string/0.25.7:  
4885 - resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==}  
4886 - dependencies:  
4887 - sourcemap-codec: 1.4.8  
4888 -  
4889 - /magic-string/0.26.2:  
4890 - resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==}  
4891 - engines: {node: '>=12'}  
4892 - dependencies:  
4893 - sourcemap-codec: 1.4.8  
4894 - dev: true  
4895 -  
4896 - /make-dir/2.1.0:  
4897 - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}  
4898 - engines: {node: '>=6'}  
4899 - requiresBuild: true  
4900 - dependencies:  
4901 - pify: 4.0.1  
4902 - semver: 5.7.1  
4903 - dev: true  
4904 - optional: true  
4905 -  
4906 - /make-error/1.3.6:  
4907 - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}  
4908 - dev: true  
4909 -  
4910 - /make-iterator/1.0.1:  
4911 - resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==}  
4912 - engines: {node: '>=0.10.0'}  
4913 - dependencies:  
4914 - kind-of: 6.0.3  
4915 - dev: true  
4916 -  
4917 - /map-cache/0.2.2:  
4918 - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}  
4919 - engines: {node: '>=0.10.0'}  
4920 - dev: true  
4921 -  
4922 - /map-obj/1.0.1:  
4923 - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}  
4924 - engines: {node: '>=0.10.0'}  
4925 - dev: true  
4926 -  
4927 - /map-obj/4.3.0:  
4928 - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}  
4929 - engines: {node: '>=8'}  
4930 - dev: true  
4931 -  
4932 - /map-visit/1.0.0:  
4933 - 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}  
4934 - engines: {node: '>=0.10.0'}  
4935 - dependencies:  
4936 - object-visit: 1.0.1  
4937 - dev: true  
4938 -  
4939 - /mathml-tag-names/2.1.3:  
4940 - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}  
4941 - dev: true  
4942 -  
4943 - /mdn-data/2.0.14:  
4944 - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}  
4945 - dev: true  
4946 -  
4947 - /memoize-one/6.0.0:  
4948 - resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}  
4949 - dev: false  
4950 -  
4951 - /meow/8.1.2:  
4952 - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}  
4953 - engines: {node: '>=10'}  
4954 - dependencies:  
4955 - '@types/minimist': 1.2.2  
4956 - camelcase-keys: 6.2.2  
4957 - decamelize-keys: 1.1.0  
4958 - hard-rejection: 2.1.0  
4959 - minimist-options: 4.1.0  
4960 - normalize-package-data: 3.0.3  
4961 - read-pkg-up: 7.0.1  
4962 - redent: 3.0.0  
4963 - trim-newlines: 3.0.1  
4964 - type-fest: 0.18.1  
4965 - yargs-parser: 20.2.9  
4966 - dev: true  
4967 -  
4968 - /meow/9.0.0:  
4969 - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==}  
4970 - engines: {node: '>=10'}  
4971 - dependencies:  
4972 - '@types/minimist': 1.2.2  
4973 - camelcase-keys: 6.2.2  
4974 - decamelize: 1.2.0  
4975 - decamelize-keys: 1.1.0  
4976 - hard-rejection: 2.1.0  
4977 - minimist-options: 4.1.0  
4978 - normalize-package-data: 3.0.3  
4979 - read-pkg-up: 7.0.1  
4980 - redent: 3.0.0  
4981 - trim-newlines: 3.0.1  
4982 - type-fest: 0.18.1  
4983 - yargs-parser: 20.2.9  
4984 - dev: true  
4985 -  
4986 - /merge-stream/2.0.0:  
4987 - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}  
4988 - dev: true  
4989 -  
4990 - /merge2/1.4.1:  
4991 - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}  
4992 - engines: {node: '>= 8'}  
4993 - dev: true  
4994 -  
4995 - /micromatch/3.1.0:  
4996 - resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}  
4997 - engines: {node: '>=0.10.0'}  
4998 - dependencies:  
4999 - arr-diff: 4.0.0  
5000 - array-unique: 0.3.2  
5001 - braces: 2.3.2  
5002 - define-property: 1.0.0  
5003 - extend-shallow: 2.0.1  
5004 - extglob: 2.0.4  
5005 - fragment-cache: 0.2.1  
5006 - kind-of: 5.1.0  
5007 - nanomatch: 1.2.13  
5008 - object.pick: 1.3.0  
5009 - regex-not: 1.0.2  
5010 - snapdragon: 0.8.2  
5011 - to-regex: 3.0.2  
5012 - transitivePeerDependencies:  
5013 - - supports-color  
5014 - dev: true  
5015 -  
5016 - /micromatch/4.0.5:  
5017 - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}  
5018 - engines: {node: '>=8.6'}  
5019 - dependencies:  
5020 - braces: 3.0.2  
5021 - picomatch: 2.3.1  
5022 - dev: true  
5023 -  
5024 - /mime-db/1.52.0:  
5025 - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}  
5026 - engines: {node: '>= 0.6'}  
5027 - dev: false  
5028 -  
5029 - /mime-match/1.0.2:  
5030 - resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}  
5031 - dependencies:  
5032 - wildcard: 1.1.2  
5033 - dev: false  
5034 -  
5035 - /mime-types/2.1.35:  
5036 - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}  
5037 - engines: {node: '>= 0.6'}  
5038 - dependencies:  
5039 - mime-db: 1.52.0  
5040 - dev: false  
5041 -  
5042 - /mime/1.6.0:  
5043 - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}  
5044 - engines: {node: '>=4'}  
5045 - hasBin: true  
5046 - requiresBuild: true  
5047 - dev: true  
5048 - optional: true  
5049 -  
5050 - /mimic-fn/2.1.0:  
5051 - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}  
5052 - engines: {node: '>=6'}  
5053 - dev: true  
5054 -  
5055 - /mimic-fn/4.0.0:  
5056 - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}  
5057 - engines: {node: '>=12'}  
5058 - dev: true  
5059 -  
5060 - /min-indent/1.0.1:  
5061 - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}  
5062 - engines: {node: '>=4'}  
5063 - dev: true  
5064 -  
5065 - /minimatch/3.1.2:  
5066 - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}  
5067 - dependencies:  
5068 - brace-expansion: 1.1.11  
5069 - dev: true  
5070 -  
5071 - /minimist-options/4.1.0:  
5072 - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}  
5073 - engines: {node: '>= 6'}  
5074 - dependencies:  
5075 - arrify: 1.0.1  
5076 - is-plain-obj: 1.1.0  
5077 - kind-of: 6.0.3  
5078 - dev: true  
5079 -  
5080 - /minimist/1.2.6:  
5081 - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}  
5082 - dev: true  
5083 -  
5084 - /mitt/3.0.0:  
5085 - 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}  
5086 - dev: false  
5087 -  
5088 - /mixin-deep/1.3.2:  
5089 - 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}  
5090 - engines: {node: '>=0.10.0'}  
5091 - dependencies:  
5092 - for-in: 1.0.2  
5093 - is-extendable: 1.0.1  
5094 - dev: true  
5095 -  
5096 - /mkdirp/1.0.4:  
5097 - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}  
5098 - engines: {node: '>=10'}  
5099 - hasBin: true  
5100 - dev: true  
5101 -  
5102 - /mrmime/1.0.0:  
5103 - resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==}  
5104 - engines: {node: '>=10'}  
5105 - dev: true  
5106 -  
5107 - /ms/2.0.0:  
5108 - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}  
5109 - dev: true  
5110 -  
5111 - /ms/2.1.2:  
5112 - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}  
5113 - dev: true  
5114 -  
5115 - /ms/2.1.3:  
5116 - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}  
5117 - dev: true  
5118 - optional: true  
5119 -  
5120 - /multimatch/4.0.0:  
5121 - resolution: {integrity: sha1-jDwPbj6ESa2grz3SnvtJGjdRkbM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/multimatch/download/multimatch-4.0.0.tgz}  
5122 - engines: {node: '>=8'}  
5123 - dependencies:  
5124 - '@types/minimatch': 3.0.5  
5125 - array-differ: registry.nlark.com/array-differ/3.0.0  
5126 - array-union: 2.1.0  
5127 - arrify: 2.0.1  
5128 - minimatch: 3.1.2  
5129 - dev: true  
5130 -  
5131 - /mute-stream/0.0.8:  
5132 - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}  
5133 - dev: true  
5134 -  
5135 - /namespace-emitter/2.0.1:  
5136 - resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}  
5137 - dev: false  
5138 -  
5139 - /nanoid/3.3.4:  
5140 - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}  
5141 - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}  
5142 - hasBin: true  
5143 -  
5144 - /nanomatch/1.2.13:  
5145 - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/nanomatch/-/nanomatch-1.2.13.tgz}  
5146 - engines: {node: '>=0.10.0'}  
5147 - dependencies:  
5148 - arr-diff: 4.0.0  
5149 - array-unique: 0.3.2  
5150 - define-property: 2.0.2  
5151 - extend-shallow: 3.0.2  
5152 - fragment-cache: 0.2.1  
5153 - is-windows: 1.0.2  
5154 - kind-of: 6.0.3  
5155 - object.pick: 1.3.0  
5156 - regex-not: 1.0.2  
5157 - snapdragon: 0.8.2  
5158 - to-regex: 3.0.2  
5159 - transitivePeerDependencies:  
5160 - - supports-color  
5161 - dev: true  
5162 -  
5163 - /natural-compare/1.4.0:  
5164 - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}  
5165 - dev: true  
5166 -  
5167 - /needle/3.1.0:  
5168 - resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==}  
5169 - engines: {node: '>= 4.4.x'}  
5170 - hasBin: true  
5171 - requiresBuild: true  
5172 - dependencies:  
5173 - debug: 3.2.7  
5174 - iconv-lite: 0.6.3  
5175 - sax: 1.2.4  
5176 - transitivePeerDependencies:  
5177 - - supports-color  
5178 - dev: true  
5179 - optional: true  
5180 -  
5181 - /neo-async/2.6.2:  
5182 - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}  
5183 - dev: true  
5184 -  
5185 - /next-tick/1.0.0:  
5186 - resolution: {integrity: sha512-mc/caHeUcdjnC/boPWJefDr4KUIWQNv+tlnFnJd38QMou86QtxQzBJfxgGRzvx8jazYRqrVlaHarfO72uNxPOg==}  
5187 - dev: false  
5188 -  
5189 - /no-case/3.0.4:  
5190 - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}  
5191 - dependencies:  
5192 - lower-case: 2.0.2  
5193 - tslib: 2.3.1  
5194 - dev: true  
5195 -  
5196 - /node-fetch/2.6.7:  
5197 - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}  
5198 - engines: {node: 4.x || >=6.0.0}  
5199 - peerDependencies:  
5200 - encoding: ^0.1.0  
5201 - peerDependenciesMeta:  
5202 - encoding:  
5203 - optional: true  
5204 - dependencies:  
5205 - whatwg-url: 5.0.0  
5206 - dev: true  
5207 -  
5208 - /node-html-parser/5.3.3:  
5209 - 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}  
5210 - dependencies:  
5211 - css-select: 4.2.1  
5212 - he: 1.2.0  
5213 - dev: true  
5214 -  
5215 - /node-plop/0.31.0:  
5216 - resolution: {integrity: sha512-aKLPxiBoFTNUovvtK8j/Whc4PZREkYx6htw2HJPiU8wYquXmN8pkd9B3xlFo6AJ4ZlzFsQSf/NXR5xET8EqRYw==}  
5217 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
5218 - dependencies:  
5219 - '@types/inquirer': 8.2.1  
5220 - change-case: 4.1.2  
5221 - del: 6.0.0  
5222 - globby: 13.1.1  
5223 - handlebars: 4.7.7  
5224 - inquirer: 8.2.2  
5225 - isbinaryfile: 4.0.10  
5226 - lodash.get: 4.4.2  
5227 - lower-case: 2.0.2  
5228 - mkdirp: 1.0.4  
5229 - resolve: 1.22.1  
5230 - title-case: 3.0.3  
5231 - upper-case: 2.0.2  
5232 - dev: true  
5233 -  
5234 - /node-releases/2.0.4:  
5235 - resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==}  
5236 - dev: true  
5237 -  
5238 - /normalize-package-data/2.5.0:  
5239 - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}  
5240 - dependencies:  
5241 - hosted-git-info: 2.8.9  
5242 - resolve: 1.22.1  
5243 - semver: 5.7.1  
5244 - validate-npm-package-license: 3.0.4  
5245 - dev: true  
5246 -  
5247 - /normalize-package-data/3.0.3:  
5248 - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}  
5249 - engines: {node: '>=10'}  
5250 - dependencies:  
5251 - hosted-git-info: 4.0.2  
5252 - is-core-module: 2.8.1  
5253 - semver: 7.3.7  
5254 - validate-npm-package-license: 3.0.4  
5255 - dev: true  
5256 -  
5257 - /normalize-path/3.0.0:  
5258 - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}  
5259 - engines: {node: '>=0.10.0'}  
5260 - dev: true  
5261 -  
5262 - /normalize-range/0.1.2:  
5263 - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}  
5264 - engines: {node: '>=0.10.0'}  
5265 - dev: true  
5266 -  
5267 - /normalize-wheel-es/1.1.2:  
5268 - resolution: {integrity: sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==}  
5269 - dev: false  
5270 -  
5271 - /npm-run-path/4.0.1:  
5272 - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}  
5273 - engines: {node: '>=8'}  
5274 - dependencies:  
5275 - path-key: 3.1.1  
5276 - dev: true  
5277 -  
5278 - /npm-run-path/5.1.0:  
5279 - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}  
5280 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
5281 - dependencies:  
5282 - path-key: 4.0.0  
5283 - dev: true  
5284 -  
5285 - /nprogress/0.2.0:  
5286 - 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}  
5287 - requiresBuild: true  
5288 - dev: false  
5289 -  
5290 - /nth-check/2.0.1:  
5291 - resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==}  
5292 - dependencies:  
5293 - boolbase: 1.0.0  
5294 - dev: true  
5295 -  
5296 - /object-assign/4.1.1:  
5297 - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}  
5298 - engines: {node: '>=0.10.0'}  
5299 - dev: true  
5300 -  
5301 - /object-copy/0.1.0:  
5302 - 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}  
5303 - engines: {node: '>=0.10.0'}  
5304 - dependencies:  
5305 - copy-descriptor: 0.1.1  
5306 - define-property: 0.2.5  
5307 - kind-of: 3.2.2  
5308 - dev: true  
5309 -  
5310 - /object-inspect/1.12.2:  
5311 - resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}  
5312 -  
5313 - /object-visit/1.0.1:  
5314 - 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}  
5315 - engines: {node: '>=0.10.0'}  
5316 - dependencies:  
5317 - isobject: 3.0.1  
5318 - dev: true  
5319 -  
5320 - /object.defaults/1.1.0:  
5321 - resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==}  
5322 - engines: {node: '>=0.10.0'}  
5323 - dependencies:  
5324 - array-each: 1.0.1  
5325 - array-slice: 1.1.0  
5326 - for-own: 1.0.0  
5327 - isobject: 3.0.1  
5328 - dev: true  
5329 -  
5330 - /object.map/1.0.1:  
5331 - resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==}  
5332 - engines: {node: '>=0.10.0'}  
5333 - dependencies:  
5334 - for-own: 1.0.0  
5335 - make-iterator: 1.0.1  
5336 - dev: true  
5337 -  
5338 - /object.pick/1.3.0:  
5339 - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}  
5340 - engines: {node: '>=0.10.0'}  
5341 - dependencies:  
5342 - isobject: 3.0.1  
5343 - dev: true  
5344 -  
5345 - /on-finished/2.3.0:  
5346 - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}  
5347 - engines: {node: '>= 0.8'}  
5348 - dependencies:  
5349 - ee-first: 1.1.1  
5350 - dev: true  
5351 -  
5352 - /once/1.4.0:  
5353 - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}  
5354 - dependencies:  
5355 - wrappy: 1.0.2  
5356 - dev: true  
5357 -  
5358 - /onetime/5.1.2:  
5359 - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}  
5360 - engines: {node: '>=6'}  
5361 - dependencies:  
5362 - mimic-fn: 2.1.0  
5363 - dev: true  
5364 -  
5365 - /onetime/6.0.0:  
5366 - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}  
5367 - engines: {node: '>=12'}  
5368 - dependencies:  
5369 - mimic-fn: 4.0.0  
5370 - dev: true  
5371 -  
5372 - /optionator/0.9.1:  
5373 - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}  
5374 - engines: {node: '>= 0.8.0'}  
5375 - dependencies:  
5376 - deep-is: 0.1.4  
5377 - fast-levenshtein: 2.0.6  
5378 - levn: 0.4.1  
5379 - prelude-ls: 1.2.1  
5380 - type-check: 0.4.0  
5381 - word-wrap: 1.2.3  
5382 - dev: true  
5383 -  
5384 - /ora/5.4.1:  
5385 - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}  
5386 - engines: {node: '>=10'}  
5387 - dependencies:  
5388 - bl: 4.1.0  
5389 - chalk: 4.1.2  
5390 - cli-cursor: 3.1.0  
5391 - cli-spinners: 2.6.1  
5392 - is-interactive: 1.0.0  
5393 - is-unicode-supported: 0.1.0  
5394 - log-symbols: 4.1.0  
5395 - strip-ansi: 6.0.1  
5396 - wcwidth: 1.0.1  
5397 - dev: true  
5398 -  
5399 - /ora/6.1.0:  
5400 - resolution: {integrity: sha512-CxEP6845hLK+NHFWZ+LplGO4zfw4QSfxTlqMfvlJ988GoiUeZDMzCvqsZkFHv69sPICmJH1MDxZoQFOKXerAVw==}  
5401 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
5402 - dependencies:  
5403 - bl: 5.0.0  
5404 - chalk: 5.0.1  
5405 - cli-cursor: 4.0.0  
5406 - cli-spinners: 2.6.1  
5407 - is-interactive: 2.0.0  
5408 - is-unicode-supported: 1.2.0  
5409 - log-symbols: 5.1.0  
5410 - strip-ansi: 7.0.1  
5411 - wcwidth: 1.0.1  
5412 - dev: true  
5413 -  
5414 - /os-tmpdir/1.0.2:  
5415 - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}  
5416 - engines: {node: '>=0.10.0'}  
5417 - dev: true  
5418 -  
5419 - /p-limit/2.3.0:  
5420 - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}  
5421 - engines: {node: '>=6'}  
5422 - dependencies:  
5423 - p-try: 2.2.0  
5424 -  
5425 - /p-limit/3.1.0:  
5426 - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}  
5427 - engines: {node: '>=10'}  
5428 - dependencies:  
5429 - yocto-queue: 0.1.0  
5430 - dev: true  
5431 -  
5432 - /p-locate/4.1.0:  
5433 - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}  
5434 - engines: {node: '>=8'}  
5435 - dependencies:  
5436 - p-limit: 2.3.0  
5437 -  
5438 - /p-locate/5.0.0:  
5439 - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}  
5440 - engines: {node: '>=10'}  
5441 - dependencies:  
5442 - p-limit: 3.1.0  
5443 - dev: true  
5444 -  
5445 - /p-map/4.0.0:  
5446 - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}  
5447 - engines: {node: '>=10'}  
5448 - dependencies:  
5449 - aggregate-error: 3.1.0  
5450 - dev: true  
5451 -  
5452 - /p-try/2.2.0:  
5453 - 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}  
5454 - engines: {node: '>=6'}  
5455 -  
5456 - /param-case/3.0.4:  
5457 - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}  
5458 - dependencies:  
5459 - dot-case: 3.0.4  
5460 - tslib: 2.3.1  
5461 - dev: true  
5462 -  
5463 - /parent-module/1.0.1:  
5464 - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}  
5465 - engines: {node: '>=6'}  
5466 - dependencies:  
5467 - callsites: 3.1.0  
5468 - dev: true  
5469 -  
5470 - /parse-filepath/1.0.2:  
5471 - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==}  
5472 - engines: {node: '>=0.8'}  
5473 - dependencies:  
5474 - is-absolute: 1.0.0  
5475 - map-cache: 0.2.2  
5476 - path-root: 0.1.1  
5477 - dev: true  
5478 -  
5479 - /parse-json/5.2.0:  
5480 - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}  
5481 - engines: {node: '>=8'}  
5482 - dependencies:  
5483 - '@babel/code-frame': 7.16.7  
5484 - error-ex: 1.3.2  
5485 - json-parse-even-better-errors: 2.3.1  
5486 - lines-and-columns: 1.2.4  
5487 - dev: true  
5488 -  
5489 - /parse-node-version/1.0.1:  
5490 - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}  
5491 - engines: {node: '>= 0.10'}  
5492 - dev: true  
5493 -  
5494 - /parse-passwd/1.0.0:  
5495 - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}  
5496 - engines: {node: '>=0.10.0'}  
5497 - dev: true  
5498 -  
5499 - /parse5-htmlparser2-tree-adapter/6.0.1:  
5500 - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==}  
5501 - dependencies:  
5502 - parse5: 6.0.1  
5503 - dev: true  
5504 -  
5505 - /parse5/6.0.1:  
5506 - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}  
5507 - dev: true  
5508 -  
5509 - /parseurl/1.3.3:  
5510 - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}  
5511 - engines: {node: '>= 0.8'}  
5512 - dev: true  
5513 -  
5514 - /pascal-case/3.1.2:  
5515 - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}  
5516 - dependencies:  
5517 - no-case: 3.0.4  
5518 - tslib: 2.3.1  
5519 - dev: true  
5520 -  
5521 - /pascalcase/0.1.1:  
5522 - 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}  
5523 - engines: {node: '>=0.10.0'}  
5524 - dev: true  
5525 -  
5526 - /path-case/3.0.4:  
5527 - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}  
5528 - dependencies:  
5529 - dot-case: 3.0.4  
5530 - tslib: 2.3.1  
5531 - dev: true  
5532 -  
5533 - /path-exists/4.0.0:  
5534 - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}  
5535 - engines: {node: '>=8'}  
5536 -  
5537 - /path-is-absolute/1.0.1:  
5538 - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}  
5539 - engines: {node: '>=0.10.0'}  
5540 - dev: true  
5541 -  
5542 - /path-key/3.1.1:  
5543 - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}  
5544 - engines: {node: '>=8'}  
5545 - dev: true  
5546 -  
5547 - /path-key/4.0.0:  
5548 - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}  
5549 - engines: {node: '>=12'}  
5550 - dev: true  
5551 -  
5552 - /path-parse/1.0.7:  
5553 - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}  
5554 - dev: true  
5555 -  
5556 - /path-root-regex/0.1.2:  
5557 - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}  
5558 - engines: {node: '>=0.10.0'}  
5559 - dev: true  
5560 -  
5561 - /path-root/0.1.1:  
5562 - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}  
5563 - engines: {node: '>=0.10.0'}  
5564 - dependencies:  
5565 - path-root-regex: 0.1.2  
5566 - dev: true  
5567 -  
5568 - /path-type/4.0.0:  
5569 - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}  
5570 - engines: {node: '>=8'}  
5571 - dev: true  
5572 -  
5573 - /pathe/0.2.0:  
5574 - resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}  
5575 - dev: true  
5576 -  
5577 - /pathe/0.3.1:  
5578 - resolution: {integrity: sha512-cKMVe/pikPpreoODbjoliSk0cIT66JjEOWN30akc9WTo8kUjxFPYqmXvMBVPMSAJGJlx6v/nYzqSSHkp1cfezQ==}  
5579 - dev: true  
5580 -  
5581 - /picocolors/1.0.0:  
5582 - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}  
5583 -  
5584 - /picomatch/2.3.1:  
5585 - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}  
5586 - engines: {node: '>=8.6'}  
5587 - dev: true  
5588 -  
5589 - /pidtree/0.6.0:  
5590 - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}  
5591 - engines: {node: '>=0.10'}  
5592 - hasBin: true  
5593 - dev: true  
5594 -  
5595 - /pify/4.0.1:  
5596 - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}  
5597 - engines: {node: '>=6'}  
5598 - dev: true  
5599 - optional: true  
5600 -  
5601 - /pinia-plugin-persist/1.0.0_pinia@2.0.16+vue@3.2.37:  
5602 - 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}  
5603 - peerDependencies:  
5604 - '@vue/composition-api': ^1.0.0  
5605 - pinia: ^2.0.0  
5606 - vue: ^2.0.0 || >=3.0.0  
5607 - peerDependenciesMeta:  
5608 - '@vue/composition-api':  
5609 - optional: true  
5610 - dependencies:  
5611 - pinia: 2.0.16_j6bzmzd4ujpabbp5objtwxyjp4  
5612 - vue: 3.2.37  
5613 - vue-demi: 0.12.1_vue@3.2.37  
5614 - dev: false  
5615 -  
5616 - /pinia/2.0.16_j6bzmzd4ujpabbp5objtwxyjp4:  
5617 - resolution: {integrity: sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==}  
5618 - peerDependencies:  
5619 - '@vue/composition-api': ^1.4.0  
5620 - typescript: '>=4.4.4'  
5621 - vue: ^2.6.14 || ^3.2.0  
5622 - peerDependenciesMeta:  
5623 - '@vue/composition-api':  
5624 - optional: true  
5625 - typescript:  
5626 - optional: true  
5627 - dependencies:  
5628 - '@vue/devtools-api': 6.1.4  
5629 - typescript: 4.7.4  
5630 - vue: 3.2.37  
5631 - vue-demi: 0.12.1_vue@3.2.37  
5632 - dev: false  
5633 -  
5634 - /plop/3.1.1:  
5635 - resolution: {integrity: sha512-NuctKmuNUACXBQn25bBr5oj/75nHxdKGwjA/+b7cVoj1sp+gTVqcc8eAr4QcNJgMPsZWRJBN2kMkgmsqbqV9gg==}  
5636 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
5637 - hasBin: true  
5638 - dependencies:  
5639 - '@types/liftoff': 4.0.0  
5640 - chalk: 5.0.1  
5641 - interpret: 2.2.0  
5642 - liftoff: 4.0.0  
5643 - minimist: 1.2.6  
5644 - node-plop: 0.31.0  
5645 - ora: 6.1.0  
5646 - v8flags: 4.0.0  
5647 - dev: true  
5648 -  
5649 - /pngjs/5.0.0:  
5650 - resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}  
5651 - engines: {node: '>=10.13.0'}  
5652 - dev: false  
5653 -  
5654 - /posix-character-classes/0.1.1:  
5655 - 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}  
5656 - engines: {node: '>=0.10.0'}  
5657 - dev: true  
5658 -  
5659 - /postcss-html/1.5.0:  
5660 - resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==}  
5661 - engines: {node: ^12 || >=14}  
5662 - dependencies:  
5663 - htmlparser2: 8.0.1  
5664 - js-tokens: 8.0.0  
5665 - postcss: 8.4.14  
5666 - postcss-safe-parser: 6.0.0_postcss@8.4.14  
5667 - dev: true  
5668 -  
5669 - /postcss-less/6.0.0_postcss@8.4.14:  
5670 - 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}  
5671 - engines: {node: '>=12'}  
5672 - peerDependencies:  
5673 - postcss: ^8.3.5  
5674 - dependencies:  
5675 - postcss: 8.4.14  
5676 - dev: true  
5677 -  
5678 - /postcss-media-query-parser/0.2.3:  
5679 - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==}  
5680 - dev: true  
5681 -  
5682 - /postcss-prefix-selector/1.14.0_postcss@5.2.18:  
5683 - 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}  
5684 - peerDependencies:  
5685 - postcss: 7.x || 8.x  
5686 - dependencies:  
5687 - postcss: 5.2.18  
5688 - dev: true  
5689 -  
5690 - /postcss-resolve-nested-selector/0.1.1:  
5691 - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==}  
5692 - dev: true  
5693 -  
5694 - /postcss-safe-parser/6.0.0_postcss@8.4.14:  
5695 - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}  
5696 - engines: {node: '>=12.0'}  
5697 - peerDependencies:  
5698 - postcss: ^8.3.3  
5699 - dependencies:  
5700 - postcss: 8.4.14  
5701 - dev: true  
5702 -  
5703 - /postcss-selector-parser/6.0.10:  
5704 - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}  
5705 - engines: {node: '>=4'}  
5706 - dependencies:  
5707 - cssesc: 3.0.0  
5708 - util-deprecate: 1.0.2  
5709 - dev: true  
5710 -  
5711 - /postcss-sorting/7.0.1_postcss@8.4.14:  
5712 - 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}  
5713 - peerDependencies:  
5714 - postcss: ^8.3.9  
5715 - dependencies:  
5716 - postcss: 8.4.14  
5717 - dev: true  
5718 -  
5719 - /postcss-value-parser/4.2.0:  
5720 - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}  
5721 - dev: true  
5722 -  
5723 - /postcss/5.2.18:  
5724 - resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}  
5725 - engines: {node: '>=0.12'}  
5726 - dependencies:  
5727 - chalk: 1.1.3  
5728 - js-base64: 2.6.4  
5729 - source-map: 0.5.7  
5730 - supports-color: 3.2.3  
5731 - dev: true  
5732 -  
5733 - /postcss/8.4.14:  
5734 - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}  
5735 - engines: {node: ^10 || ^12 || >=14}  
5736 - dependencies:  
5737 - nanoid: 3.3.4  
5738 - picocolors: 1.0.0  
5739 - source-map-js: 1.0.2  
5740 -  
5741 - /posthtml-parser/0.2.1:  
5742 - 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}  
5743 - dependencies:  
5744 - htmlparser2: 3.10.1  
5745 - isobject: 2.1.0  
5746 - dev: true  
5747 -  
5748 - /posthtml-rename-id/1.0.12:  
5749 - 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}  
5750 - dependencies:  
5751 - escape-string-regexp: 1.0.5  
5752 - dev: true  
5753 -  
5754 - /posthtml-render/1.4.0:  
5755 - 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}  
5756 - engines: {node: '>=10'}  
5757 - dev: true  
5758 -  
5759 - /posthtml-svg-mode/1.0.3:  
5760 - 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}  
5761 - dependencies:  
5762 - merge-options: registry.nlark.com/merge-options/1.0.1  
5763 - posthtml: 0.9.2  
5764 - posthtml-parser: 0.2.1  
5765 - posthtml-render: 1.4.0  
5766 - dev: true  
5767 -  
5768 - /posthtml/0.9.2:  
5769 - resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/posthtml/-/posthtml-0.9.2.tgz}  
5770 - engines: {node: '>=0.10.0'}  
5771 - dependencies:  
5772 - posthtml-parser: 0.2.1  
5773 - posthtml-render: 1.4.0  
5774 - dev: true  
5775 -  
5776 - /preact/10.6.5:  
5777 - resolution: {integrity: sha512-i+LXM6JiVjQXSt2jG2vZZFapGpCuk1fl8o6ii3G84MA3xgj686FKjs4JFDkmUVhtxyq21+4ay74zqPykz9hU6w==}  
5778 - dev: false  
5779 -  
5780 - /prelude-ls/1.2.1:  
5781 - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}  
5782 - engines: {node: '>= 0.8.0'}  
5783 - dev: true  
5784 -  
5785 - /prettier-linter-helpers/1.0.0:  
5786 - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}  
5787 - engines: {node: '>=6.0.0'}  
5788 - dependencies:  
5789 - fast-diff: 1.2.0  
5790 - dev: true  
5791 -  
5792 - /prettier/2.7.1:  
5793 - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}  
5794 - engines: {node: '>=10.13.0'}  
5795 - hasBin: true  
5796 - dev: true  
5797 -  
5798 - /pretty-quick/3.1.3_prettier@2.7.1:  
5799 - 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}  
5800 - engines: {node: '>=10.13'}  
5801 - hasBin: true  
5802 - peerDependencies:  
5803 - prettier: '>=2.0.0'  
5804 - dependencies:  
5805 - chalk: 3.0.0  
5806 - execa: 4.1.0  
5807 - find-up: 4.1.0  
5808 - ignore: 5.2.0  
5809 - mri: registry.nlark.com/mri/1.2.0  
5810 - multimatch: 4.0.0  
5811 - prettier: 2.7.1  
5812 - dev: true  
5813 -  
5814 - /prismjs/1.26.0:  
5815 - resolution: {integrity: sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==}  
5816 - engines: {node: '>=6'}  
5817 - dev: false  
5818 -  
5819 - /prr/1.0.1:  
5820 - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}  
5821 - dev: true  
5822 - optional: true  
5823 -  
5824 - /pump/3.0.0:  
5825 - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}  
5826 - dependencies:  
5827 - end-of-stream: 1.4.4  
5828 - once: 1.4.0  
5829 - dev: true  
5830 -  
5831 - /punycode/2.1.1:  
5832 - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}  
5833 - engines: {node: '>=6'}  
5834 - dev: true  
5835 -  
5836 - /q/1.5.1:  
5837 - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}  
5838 - engines: {node: '>=0.6.0', teleport: '>=0.2.0'}  
5839 - dev: true  
5840 -  
5841 - /qrcode/1.5.1:  
5842 - resolution: {integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==}  
5843 - engines: {node: '>=10.13.0'}  
5844 - hasBin: true  
5845 - dependencies:  
5846 - dijkstrajs: 1.0.2  
5847 - encode-utf8: 1.0.3  
5848 - pngjs: 5.0.0  
5849 - yargs: 15.4.1  
5850 - dev: false  
5851 -  
5852 - /qs/6.11.0:  
5853 - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}  
5854 - engines: {node: '>=0.6'}  
5855 - dependencies:  
5856 - side-channel: 1.0.4  
5857 - dev: false  
5858 -  
5859 - /query-string/4.3.4:  
5860 - 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}  
5861 - engines: {node: '>=0.10.0'}  
5862 - dependencies:  
5863 - object-assign: 4.1.1  
5864 - strict-uri-encode: 1.1.0  
5865 - dev: true  
5866 -  
5867 - /queue-microtask/1.2.3:  
5868 - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}  
5869 - dev: true  
5870 -  
5871 - /quick-lru/4.0.1:  
5872 - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}  
5873 - engines: {node: '>=8'}  
5874 - dev: true  
5875 -  
5876 - /read-pkg-up/7.0.1:  
5877 - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}  
5878 - engines: {node: '>=8'}  
5879 - dependencies:  
5880 - find-up: 4.1.0  
5881 - read-pkg: 5.2.0  
5882 - type-fest: 0.8.1  
5883 - dev: true  
5884 -  
5885 - /read-pkg/5.2.0:  
5886 - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}  
5887 - engines: {node: '>=8'}  
5888 - dependencies:  
5889 - '@types/normalize-package-data': 2.4.1  
5890 - normalize-package-data: 2.5.0  
5891 - parse-json: 5.2.0  
5892 - type-fest: 0.6.0  
5893 - dev: true  
5894 -  
5895 - /readable-stream/3.6.0:  
5896 - resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}  
5897 - engines: {node: '>= 6'}  
5898 - dependencies:  
5899 - inherits: 2.0.4  
5900 - string_decoder: 1.3.0  
5901 - util-deprecate: 1.0.2  
5902 - dev: true  
5903 -  
5904 - /readdirp/3.6.0:  
5905 - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}  
5906 - engines: {node: '>=8.10.0'}  
5907 - dependencies:  
5908 - picomatch: 2.3.1  
5909 - dev: true  
5910 -  
5911 - /rechoir/0.8.0:  
5912 - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}  
5913 - engines: {node: '>= 10.13.0'}  
5914 - dependencies:  
5915 - resolve: 1.22.1  
5916 - dev: true  
5917 -  
5918 - /redent/3.0.0:  
5919 - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}  
5920 - engines: {node: '>=8'}  
5921 - dependencies:  
5922 - indent-string: 4.0.0  
5923 - strip-indent: 3.0.0  
5924 - dev: true  
5925 -  
5926 - /regenerator-runtime/0.13.9:  
5927 - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}  
5928 - dev: false  
5929 -  
5930 - /regex-not/1.0.2:  
5931 - 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}  
5932 - engines: {node: '>=0.10.0'}  
5933 - dependencies:  
5934 - extend-shallow: 3.0.2  
5935 - safe-regex: 1.1.0  
5936 - dev: true  
5937 -  
5938 - /regexpp/3.2.0:  
5939 - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}  
5940 - engines: {node: '>=8'}  
5941 - dev: true  
5942 -  
5943 - /relateurl/0.2.7:  
5944 - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/relateurl/-/relateurl-0.2.7.tgz}  
5945 - engines: {node: '>= 0.10'}  
5946 - dev: true  
5947 -  
5948 - /repeat-element/1.1.4:  
5949 - 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}  
5950 - engines: {node: '>=0.10.0'}  
5951 - dev: true  
5952 -  
5953 - /repeat-string/1.6.1:  
5954 - 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}  
5955 - engines: {node: '>=0.10'}  
5956 - dev: true  
5957 -  
5958 - /require-directory/2.1.1:  
5959 - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}  
5960 - engines: {node: '>=0.10.0'}  
5961 -  
5962 - /require-from-string/2.0.2:  
5963 - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}  
5964 - engines: {node: '>=0.10.0'}  
5965 - dev: true  
5966 -  
5967 - /require-main-filename/2.0.0:  
5968 - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}  
5969 - dev: false  
5970 -  
5971 - /resolve-dir/1.0.1:  
5972 - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}  
5973 - engines: {node: '>=0.10.0'}  
5974 - dependencies:  
5975 - expand-tilde: 2.0.2  
5976 - global-modules: 1.0.0  
5977 - dev: true  
5978 -  
5979 - /resolve-from/4.0.0:  
5980 - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}  
5981 - engines: {node: '>=4'}  
5982 - dev: true  
5983 -  
5984 - /resolve-from/5.0.0:  
5985 - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}  
5986 - engines: {node: '>=8'}  
5987 - dev: true  
5988 -  
5989 - /resolve-global/1.0.0:  
5990 - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==}  
5991 - engines: {node: '>=8'}  
5992 - dependencies:  
5993 - global-dirs: 0.1.1  
5994 - dev: true  
5995 -  
5996 - /resolve-url/0.2.1:  
5997 - 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}  
5998 - deprecated: https://github.com/lydell/resolve-url#deprecated  
5999 - dev: true  
6000 -  
6001 - /resolve/1.22.1:  
6002 - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}  
6003 - hasBin: true  
6004 - dependencies:  
6005 - is-core-module: 2.9.0  
6006 - path-parse: 1.0.7  
6007 - supports-preserve-symlinks-flag: 1.0.0  
6008 - dev: true  
6009 -  
6010 - /restore-cursor/3.1.0:  
6011 - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}  
6012 - engines: {node: '>=8'}  
6013 - dependencies:  
6014 - onetime: 5.1.2  
6015 - signal-exit: 3.0.7  
6016 - dev: true  
6017 -  
6018 - /restore-cursor/4.0.0:  
6019 - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}  
6020 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
6021 - dependencies:  
6022 - onetime: 5.1.2  
6023 - signal-exit: 3.0.7  
6024 - dev: true  
6025 -  
6026 - /ret/0.1.15:  
6027 - 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}  
6028 - engines: {node: '>=0.12'}  
6029 - dev: true  
6030 -  
6031 - /reusify/1.0.4:  
6032 - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}  
6033 - engines: {iojs: '>=1.0.0', node: '>=0.10.0'}  
6034 - dev: true  
6035 -  
6036 - /rfdc/1.3.0:  
6037 - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}  
6038 - dev: true  
6039 -  
6040 - /rimraf/3.0.2:  
6041 - resolution: {integrity: sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz}  
6042 - hasBin: true  
6043 - dependencies:  
6044 - glob: 7.2.0  
6045 - dev: true  
6046 -  
6047 - /rollup-plugin-purge-icons/0.8.1:  
6048 - 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}  
6049 - engines: {node: '>= 12'}  
6050 - dependencies:  
6051 - '@purge-icons/core': 0.8.0  
6052 - '@purge-icons/generated': 0.8.1  
6053 - transitivePeerDependencies:  
6054 - - encoding  
6055 - - supports-color  
6056 - dev: true  
6057 -  
6058 - /rollup/2.77.0:  
6059 - resolution: {integrity: sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==}  
6060 - engines: {node: '>=10.0.0'}  
6061 - hasBin: true  
6062 - optionalDependencies:  
6063 - fsevents: 2.3.2  
6064 - dev: true  
6065 -  
6066 - /run-async/2.4.1:  
6067 - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}  
6068 - engines: {node: '>=0.12.0'}  
6069 - dev: true  
6070 -  
6071 - /run-parallel/1.2.0:  
6072 - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}  
6073 - dependencies:  
6074 - queue-microtask: 1.2.3  
6075 - dev: true  
6076 -  
6077 - /rxjs/7.5.5:  
6078 - resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==}  
6079 - dependencies:  
6080 - tslib: 2.3.1  
6081 - dev: true  
6082 -  
6083 - /safe-buffer/5.1.2:  
6084 - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}  
6085 - dev: true  
6086 -  
6087 - /safe-buffer/5.2.1:  
6088 - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}  
6089 - dev: true  
6090 -  
6091 - /safe-regex/1.1.0:  
6092 - 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}  
6093 - dependencies:  
6094 - ret: 0.1.15  
6095 - dev: true  
6096 -  
6097 - /safer-buffer/2.1.2:  
6098 - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}  
6099 - dev: true  
6100 -  
6101 - /sax/1.2.4:  
6102 - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}  
6103 - dev: true  
6104 - optional: true  
6105 -  
6106 - /scroll-into-view-if-needed/2.2.29:  
6107 - resolution: {integrity: sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==}  
6108 - dependencies:  
6109 - compute-scroll-into-view: 1.0.17  
6110 - dev: false  
6111 -  
6112 - /semver/5.7.1:  
6113 - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}  
6114 - hasBin: true  
6115 - dev: true  
6116 -  
6117 - /semver/6.3.0:  
6118 - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}  
6119 - hasBin: true  
6120 - dev: true  
6121 -  
6122 - /semver/7.3.7:  
6123 - resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}  
6124 - engines: {node: '>=10'}  
6125 - hasBin: true  
6126 - dependencies:  
6127 - lru-cache: 6.0.0  
6128 - dev: true  
6129 -  
6130 - /sentence-case/3.0.4:  
6131 - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}  
6132 - dependencies:  
6133 - no-case: 3.0.4  
6134 - tslib: 2.3.1  
6135 - upper-case-first: 2.0.2  
6136 - dev: true  
6137 -  
6138 - /set-blocking/2.0.0:  
6139 - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}  
6140 - dev: false  
6141 -  
6142 - /set-value/2.0.1:  
6143 - 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}  
6144 - engines: {node: '>=0.10.0'}  
6145 - dependencies:  
6146 - extend-shallow: 2.0.1  
6147 - is-extendable: 0.1.1  
6148 - is-plain-object: 2.0.4  
6149 - split-string: 3.1.0  
6150 - dev: true  
6151 -  
6152 - /shebang-command/2.0.0:  
6153 - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}  
6154 - engines: {node: '>=8'}  
6155 - dependencies:  
6156 - shebang-regex: 3.0.0  
6157 - dev: true  
6158 -  
6159 - /shebang-regex/3.0.0:  
6160 - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}  
6161 - engines: {node: '>=8'}  
6162 - dev: true  
6163 -  
6164 - /side-channel/1.0.4:  
6165 - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}  
6166 - dependencies:  
6167 - call-bind: 1.0.2  
6168 - get-intrinsic: 1.1.1  
6169 - object-inspect: 1.12.2  
6170 - dev: false  
6171 -  
6172 - /signal-exit/3.0.7:  
6173 - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}  
6174 - dev: true  
6175 -  
6176 - /sirv/1.0.19:  
6177 - resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==}  
6178 - engines: {node: '>= 10'}  
6179 - dependencies:  
6180 - '@polka/url': 1.0.0-next.21  
6181 - mrmime: 1.0.0  
6182 - totalist: 1.1.0  
6183 - dev: true  
6184 -  
6185 - /slash/3.0.0:  
6186 - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}  
6187 - engines: {node: '>=8'}  
6188 - dev: true  
6189 -  
6190 - /slash/4.0.0:  
6191 - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}  
6192 - engines: {node: '>=12'}  
6193 - dev: true  
6194 -  
6195 - /slate-history/0.66.0_slate@0.72.8:  
6196 - resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==}  
6197 - peerDependencies:  
6198 - slate: '>=0.65.3'  
6199 - dependencies:  
6200 - is-plain-object: 5.0.0  
6201 - slate: 0.72.8  
6202 - dev: false  
6203 -  
6204 - /slate/0.72.8:  
6205 - resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==}  
6206 - dependencies:  
6207 - immer: 9.0.12  
6208 - is-plain-object: 5.0.0  
6209 - tiny-warning: 1.0.3  
6210 - dev: false  
6211 -  
6212 - /slice-ansi/3.0.0:  
6213 - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}  
6214 - engines: {node: '>=8'}  
6215 - dependencies:  
6216 - ansi-styles: 4.3.0  
6217 - astral-regex: 2.0.0  
6218 - is-fullwidth-code-point: 3.0.0  
6219 - dev: true  
6220 -  
6221 - /slice-ansi/4.0.0:  
6222 - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}  
6223 - engines: {node: '>=10'}  
6224 - dependencies:  
6225 - ansi-styles: 4.3.0  
6226 - astral-regex: 2.0.0  
6227 - is-fullwidth-code-point: 3.0.0  
6228 - dev: true  
6229 -  
6230 - /slice-ansi/5.0.0:  
6231 - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}  
6232 - engines: {node: '>=12'}  
6233 - dependencies:  
6234 - ansi-styles: 6.1.0  
6235 - is-fullwidth-code-point: 4.0.0  
6236 - dev: true  
6237 -  
6238 - /snabbdom/3.3.1:  
6239 - resolution: {integrity: sha512-FR9u20dCkktPd+qbedqwYNjMXzYhizhqlKTQzYZimLNeCJY0/5qgs0DtLVSmzIEL1bN3Dyb9sQpiHGCxUjyLnQ==}  
6240 - engines: {node: '>=8.3.0'}  
6241 - dev: false  
6242 -  
6243 - /snake-case/3.0.4:  
6244 - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}  
6245 - dependencies:  
6246 - dot-case: 3.0.4  
6247 - tslib: 2.3.1  
6248 - dev: true  
6249 -  
6250 - /snapdragon-node/2.1.1:  
6251 - 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}  
6252 - engines: {node: '>=0.10.0'}  
6253 - dependencies:  
6254 - define-property: 1.0.0  
6255 - isobject: 3.0.1  
6256 - snapdragon-util: 3.0.1  
6257 - dev: true  
6258 -  
6259 - /snapdragon-util/3.0.1:  
6260 - 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}  
6261 - engines: {node: '>=0.10.0'}  
6262 - dependencies:  
6263 - kind-of: 3.2.2  
6264 - dev: true  
6265 -  
6266 - /snapdragon/0.8.2:  
6267 - 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}  
6268 - engines: {node: '>=0.10.0'}  
6269 - dependencies:  
6270 - base: 0.11.2  
6271 - debug: 2.6.9  
6272 - define-property: 0.2.5  
6273 - extend-shallow: 2.0.1  
6274 - map-cache: 0.2.2  
6275 - source-map: 0.5.7  
6276 - source-map-resolve: 0.5.3  
6277 - use: 3.1.1  
6278 - transitivePeerDependencies:  
6279 - - supports-color  
6280 - dev: true  
6281 -  
6282 - /source-map-js/1.0.2:  
6283 - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}  
6284 - engines: {node: '>=0.10.0'}  
6285 -  
6286 - /source-map-resolve/0.5.3:  
6287 - 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}  
6288 - deprecated: See https://github.com/lydell/source-map-resolve#deprecated  
6289 - dependencies:  
6290 - atob: 2.1.2  
6291 - decode-uri-component: 0.2.0  
6292 - resolve-url: 0.2.1  
6293 - source-map-url: 0.4.1  
6294 - urix: 0.1.0  
6295 - dev: true  
6296 -  
6297 - /source-map-support/0.5.21:  
6298 - 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}  
6299 - dependencies:  
6300 - buffer-from: 1.1.2  
6301 - source-map: 0.6.1  
6302 - dev: true  
6303 -  
6304 - /source-map-url/0.4.1:  
6305 - 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}  
6306 - deprecated: See https://github.com/lydell/source-map-url#deprecated  
6307 - dev: true  
6308 -  
6309 - /source-map/0.5.7:  
6310 - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}  
6311 - engines: {node: '>=0.10.0'}  
6312 - dev: true  
6313 -  
6314 - /source-map/0.6.1:  
6315 - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}  
6316 - engines: {node: '>=0.10.0'}  
6317 -  
6318 - /source-map/0.7.3:  
6319 - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==}  
6320 - engines: {node: '>= 8'}  
6321 - dev: true  
6322 -  
6323 - /sourcemap-codec/1.4.8:  
6324 - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}  
6325 -  
6326 - /spdx-correct/3.1.1:  
6327 - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}  
6328 - dependencies:  
6329 - spdx-expression-parse: 3.0.1  
6330 - spdx-license-ids: 3.0.11  
6331 - dev: true  
6332 -  
6333 - /spdx-exceptions/2.3.0:  
6334 - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}  
6335 - dev: true  
6336 -  
6337 - /spdx-expression-parse/3.0.1:  
6338 - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}  
6339 - dependencies:  
6340 - spdx-exceptions: 2.3.0  
6341 - spdx-license-ids: 3.0.11  
6342 - dev: true  
6343 -  
6344 - /spdx-license-ids/3.0.11:  
6345 - resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==}  
6346 - dev: true  
6347 -  
6348 - /split-string/3.1.0:  
6349 - 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}  
6350 - engines: {node: '>=0.10.0'}  
6351 - dependencies:  
6352 - extend-shallow: 3.0.2  
6353 - dev: true  
6354 -  
6355 - /split2/3.2.2:  
6356 - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}  
6357 - dependencies:  
6358 - readable-stream: 3.6.0  
6359 - dev: true  
6360 -  
6361 - /ssr-window/3.0.0:  
6362 - resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}  
6363 - dev: false  
6364 -  
6365 - /stable/0.1.8:  
6366 - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/stable/-/stable-0.1.8.tgz}  
6367 - dev: true  
6368 -  
6369 - /static-extend/0.1.2:  
6370 - 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}  
6371 - engines: {node: '>=0.10.0'}  
6372 - dependencies:  
6373 - define-property: 0.2.5  
6374 - object-copy: 0.1.0  
6375 - dev: true  
6376 -  
6377 - /statuses/1.5.0:  
6378 - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}  
6379 - engines: {node: '>= 0.6'}  
6380 - dev: true  
6381 -  
6382 - /strict-uri-encode/1.1.0:  
6383 - 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}  
6384 - engines: {node: '>=0.10.0'}  
6385 - dev: true  
6386 -  
6387 - /string-argv/0.3.1:  
6388 - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==}  
6389 - engines: {node: '>=0.6.19'}  
6390 - dev: true  
6391 -  
6392 - /string-width/4.2.3:  
6393 - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}  
6394 - engines: {node: '>=8'}  
6395 - dependencies:  
6396 - emoji-regex: 8.0.0  
6397 - is-fullwidth-code-point: 3.0.0  
6398 - strip-ansi: 6.0.1  
6399 -  
6400 - /string-width/5.0.1:  
6401 - resolution: {integrity: sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==}  
6402 - engines: {node: '>=12'}  
6403 - dependencies:  
6404 - emoji-regex: 9.2.2  
6405 - is-fullwidth-code-point: 4.0.0  
6406 - strip-ansi: 7.0.1  
6407 - dev: true  
6408 -  
6409 - /string_decoder/1.3.0:  
6410 - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}  
6411 - dependencies:  
6412 - safe-buffer: 5.2.1  
6413 - dev: true  
6414 -  
6415 - /strip-ansi/3.0.1:  
6416 - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}  
6417 - engines: {node: '>=0.10.0'}  
6418 - dependencies:  
6419 - ansi-regex: 2.1.1  
6420 - dev: true  
6421 -  
6422 - /strip-ansi/6.0.1:  
6423 - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}  
6424 - engines: {node: '>=8'}  
6425 - dependencies:  
6426 - ansi-regex: 5.0.1  
6427 -  
6428 - /strip-ansi/7.0.1:  
6429 - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}  
6430 - engines: {node: '>=12'}  
6431 - dependencies:  
6432 - ansi-regex: 6.0.1  
6433 - dev: true  
6434 -  
6435 - /strip-final-newline/2.0.0:  
6436 - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}  
6437 - engines: {node: '>=6'}  
6438 - dev: true  
6439 -  
6440 - /strip-final-newline/3.0.0:  
6441 - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}  
6442 - engines: {node: '>=12'}  
6443 - dev: true  
6444 -  
6445 - /strip-indent/3.0.0:  
6446 - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}  
6447 - engines: {node: '>=8'}  
6448 - dependencies:  
6449 - min-indent: 1.0.1  
6450 - dev: true  
6451 -  
6452 - /strip-json-comments/3.1.1:  
6453 - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}  
6454 - engines: {node: '>=8'}  
6455 - dev: true  
6456 -  
6457 - /style-search/0.1.0:  
6458 - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}  
6459 - dev: true  
6460 -  
6461 - /stylelint-config-html/1.1.0_5rxrxgs7sjazj2ve56ds3kmipi:  
6462 - resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==}  
6463 - engines: {node: ^12 || >=14}  
6464 - peerDependencies:  
6465 - postcss-html: ^1.0.0  
6466 - stylelint: '>=14.0.0'  
6467 - dependencies:  
6468 - postcss-html: 1.5.0  
6469 - stylelint: 14.9.1  
6470 - dev: true  
6471 -  
6472 - /stylelint-config-prettier/9.0.3_stylelint@14.9.1:  
6473 - 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}  
6474 - engines: {node: '>= 12'}  
6475 - hasBin: true  
6476 - peerDependencies:  
6477 - stylelint: '>=11.0.0'  
6478 - dependencies:  
6479 - stylelint: 14.9.1  
6480 - dev: true  
6481 -  
6482 - /stylelint-config-recommended/8.0.0_stylelint@14.9.1:  
6483 - resolution: {integrity: sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==}  
6484 - peerDependencies:  
6485 - stylelint: ^14.8.0  
6486 - dependencies:  
6487 - stylelint: 14.9.1  
6488 - dev: true  
6489 -  
6490 - /stylelint-config-standard/26.0.0_stylelint@14.9.1:  
6491 - resolution: {integrity: sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==}  
6492 - peerDependencies:  
6493 - stylelint: ^14.9.0  
6494 - dependencies:  
6495 - stylelint: 14.9.1  
6496 - stylelint-config-recommended: 8.0.0_stylelint@14.9.1  
6497 - dev: true  
6498 -  
6499 - /stylelint-order/5.0.0_stylelint@14.9.1:  
6500 - 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}  
6501 - peerDependencies:  
6502 - stylelint: ^14.0.0  
6503 - dependencies:  
6504 - postcss: 8.4.14  
6505 - postcss-sorting: 7.0.1_postcss@8.4.14  
6506 - stylelint: 14.9.1  
6507 - dev: true  
6508 -  
6509 - /stylelint/14.9.1:  
6510 - resolution: {integrity: sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==}  
6511 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}  
6512 - hasBin: true  
6513 - dependencies:  
6514 - '@csstools/selector-specificity': 2.0.1_444rcjjorr3kpoqtvoodsr46pu  
6515 - balanced-match: 2.0.0  
6516 - colord: 2.9.2  
6517 - cosmiconfig: 7.0.1  
6518 - css-functions-list: 3.1.0  
6519 - debug: 4.3.4  
6520 - execall: 2.0.0  
6521 - fast-glob: 3.2.11  
6522 - fastest-levenshtein: 1.0.12  
6523 - file-entry-cache: 6.0.1  
6524 - get-stdin: 8.0.0  
6525 - global-modules: 2.0.0  
6526 - globby: 11.1.0  
6527 - globjoin: 0.1.4  
6528 - html-tags: 3.2.0  
6529 - ignore: 5.2.0  
6530 - import-lazy: 4.0.0  
6531 - imurmurhash: 0.1.4  
6532 - is-plain-object: 5.0.0  
6533 - known-css-properties: 0.25.0  
6534 - mathml-tag-names: 2.1.3  
6535 - meow: 9.0.0  
6536 - micromatch: 4.0.5  
6537 - normalize-path: 3.0.0  
6538 - picocolors: 1.0.0  
6539 - postcss: 8.4.14  
6540 - postcss-media-query-parser: 0.2.3  
6541 - postcss-resolve-nested-selector: 0.1.1  
6542 - postcss-safe-parser: 6.0.0_postcss@8.4.14  
6543 - postcss-selector-parser: 6.0.10  
6544 - postcss-value-parser: 4.2.0  
6545 - resolve-from: 5.0.0  
6546 - string-width: 4.2.3  
6547 - strip-ansi: 6.0.1  
6548 - style-search: 0.1.0  
6549 - supports-hyperlinks: 2.2.0  
6550 - svg-tags: 1.0.0  
6551 - table: 6.8.0  
6552 - v8-compile-cache: 2.3.0  
6553 - write-file-atomic: 4.0.1  
6554 - transitivePeerDependencies:  
6555 - - supports-color  
6556 - dev: true  
6557 -  
6558 - /supports-color/2.0.0:  
6559 - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}  
6560 - engines: {node: '>=0.8.0'}  
6561 - dev: true  
6562 -  
6563 - /supports-color/3.2.3:  
6564 - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==}  
6565 - engines: {node: '>=0.8.0'}  
6566 - dependencies:  
6567 - has-flag: 1.0.0  
6568 - dev: true  
6569 -  
6570 - /supports-color/5.5.0:  
6571 - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}  
6572 - engines: {node: '>=4'}  
6573 - dependencies:  
6574 - has-flag: 3.0.0  
6575 - dev: true  
6576 -  
6577 - /supports-color/7.2.0:  
6578 - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}  
6579 - engines: {node: '>=8'}  
6580 - dependencies:  
6581 - has-flag: 4.0.0  
6582 - dev: true  
6583 -  
6584 - /supports-hyperlinks/2.2.0:  
6585 - resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==}  
6586 - engines: {node: '>=8'}  
6587 - dependencies:  
6588 - has-flag: 4.0.0  
6589 - supports-color: 7.2.0  
6590 - dev: true  
6591 -  
6592 - /supports-preserve-symlinks-flag/1.0.0:  
6593 - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}  
6594 - engines: {node: '>= 0.4'}  
6595 - dev: true  
6596 -  
6597 - /svg-tags/1.0.0:  
6598 - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}  
6599 - dev: true  
6600 -  
6601 - /svgo/2.8.0:  
6602 - 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}  
6603 - engines: {node: '>=10.13.0'}  
6604 - hasBin: true  
6605 - dependencies:  
6606 - '@trysound/sax': 0.2.0  
6607 - commander: 7.2.0  
6608 - css-select: 4.2.1  
6609 - css-tree: 1.1.3  
6610 - csso: 4.2.0  
6611 - picocolors: 1.0.0  
6612 - stable: 0.1.8  
6613 - dev: true  
6614 -  
6615 - /table/6.8.0:  
6616 - resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==}  
6617 - engines: {node: '>=10.0.0'}  
6618 - dependencies:  
6619 - ajv: 8.11.0  
6620 - lodash.truncate: 4.4.2  
6621 - slice-ansi: 4.0.0  
6622 - string-width: 4.2.3  
6623 - strip-ansi: 6.0.1  
6624 - dev: true  
6625 -  
6626 - /terser/5.10.0:  
6627 - resolution: {integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/terser/-/terser-5.10.0.tgz}  
6628 - engines: {node: '>=10'}  
6629 - hasBin: true  
6630 - peerDependenciesMeta:  
6631 - acorn:  
6632 - optional: true  
6633 - dependencies:  
6634 - acorn: 8.7.1  
6635 - commander: 2.20.3  
6636 - source-map: 0.7.3  
6637 - source-map-support: 0.5.21  
6638 - dev: true  
6639 -  
6640 - /text-extensions/1.9.0:  
6641 - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}  
6642 - engines: {node: '>=0.10'}  
6643 - dev: true  
6644 -  
6645 - /text-table/0.2.0:  
6646 - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}  
6647 - dev: true  
6648 -  
6649 - /through/2.3.8:  
6650 - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}  
6651 - dev: true  
6652 -  
6653 - /through2/4.0.2:  
6654 - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}  
6655 - dependencies:  
6656 - readable-stream: 3.6.0  
6657 - dev: true  
6658 -  
6659 - /tiny-warning/1.0.3:  
6660 - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}  
6661 - dev: false  
6662 -  
6663 - /title-case/3.0.3:  
6664 - resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}  
6665 - dependencies:  
6666 - tslib: 2.3.1  
6667 - dev: true  
6668 -  
6669 - /tmp/0.0.33:  
6670 - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}  
6671 - engines: {node: '>=0.6.0'}  
6672 - dependencies:  
6673 - os-tmpdir: 1.0.2  
6674 - dev: true  
6675 -  
6676 - /to-fast-properties/2.0.0:  
6677 - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}  
6678 - engines: {node: '>=4'}  
6679 -  
6680 - /to-object-path/0.3.0:  
6681 - 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}  
6682 - engines: {node: '>=0.10.0'}  
6683 - dependencies:  
6684 - kind-of: 3.2.2  
6685 - dev: true  
6686 -  
6687 - /to-regex-range/2.1.1:  
6688 - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}  
6689 - engines: {node: '>=0.10.0'}  
6690 - dependencies:  
6691 - is-number: 3.0.0  
6692 - repeat-string: 1.6.1  
6693 - dev: true  
6694 -  
6695 - /to-regex-range/5.0.1:  
6696 - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}  
6697 - engines: {node: '>=8.0'}  
6698 - dependencies:  
6699 - is-number: 7.0.0  
6700 - dev: true  
6701 -  
6702 - /to-regex/3.0.2:  
6703 - 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}  
6704 - engines: {node: '>=0.10.0'}  
6705 - dependencies:  
6706 - define-property: 2.0.2  
6707 - extend-shallow: 3.0.2  
6708 - regex-not: 1.0.2  
6709 - safe-regex: 1.1.0  
6710 - dev: true  
6711 -  
6712 - /totalist/1.1.0:  
6713 - resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==}  
6714 - engines: {node: '>=6'}  
6715 - dev: true  
6716 -  
6717 - /tr46/0.0.3:  
6718 - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tr46/-/tr46-0.0.3.tgz}  
6719 - dev: true  
6720 -  
6721 - /traverse/0.6.6:  
6722 - resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/traverse/-/traverse-0.6.6.tgz}  
6723 - dev: true  
6724 -  
6725 - /trim-newlines/3.0.1:  
6726 - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}  
6727 - engines: {node: '>=8'}  
6728 - dev: true  
6729 -  
6730 - /ts-node/10.7.0_tdn3ypgnfy6bmey2q4hu5jonwi:  
6731 - resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}  
6732 - hasBin: true  
6733 - peerDependencies:  
6734 - '@swc/core': '>=1.2.50'  
6735 - '@swc/wasm': '>=1.2.50'  
6736 - '@types/node': '*'  
6737 - typescript: '>=2.7'  
6738 - peerDependenciesMeta:  
6739 - '@swc/core':  
6740 - optional: true  
6741 - '@swc/wasm':  
6742 - optional: true  
6743 - dependencies:  
6744 - '@cspotcode/source-map-support': 0.7.0  
6745 - '@tsconfig/node10': 1.0.8  
6746 - '@tsconfig/node12': 1.0.9  
6747 - '@tsconfig/node14': 1.0.1  
6748 - '@tsconfig/node16': 1.0.2  
6749 - '@types/node': 18.0.6  
6750 - acorn: 8.7.1  
6751 - acorn-walk: 8.2.0  
6752 - arg: 4.1.3  
6753 - create-require: 1.1.1  
6754 - diff: 4.0.2  
6755 - make-error: 1.3.6  
6756 - typescript: 4.7.4  
6757 - v8-compile-cache-lib: 3.0.1  
6758 - yn: 3.1.1  
6759 - dev: true  
6760 -  
6761 - /tslib/1.14.1:  
6762 - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}  
6763 - dev: true  
6764 -  
6765 - /tslib/2.3.0:  
6766 - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}  
6767 - dev: false  
6768 -  
6769 - /tslib/2.3.1:  
6770 - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}  
6771 - dev: true  
6772 -  
6773 - /tsutils/3.21.0_typescript@4.7.4:  
6774 - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}  
6775 - engines: {node: '>= 6'}  
6776 - peerDependencies:  
6777 - 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'  
6778 - dependencies:  
6779 - tslib: 1.14.1  
6780 - typescript: 4.7.4  
6781 - dev: true  
6782 -  
6783 - /type-check/0.4.0:  
6784 - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}  
6785 - engines: {node: '>= 0.8.0'}  
6786 - dependencies:  
6787 - prelude-ls: 1.2.1  
6788 - dev: true  
6789 -  
6790 - /type-fest/0.18.1:  
6791 - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}  
6792 - engines: {node: '>=10'}  
6793 - dev: true  
6794 -  
6795 - /type-fest/0.20.2:  
6796 - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}  
6797 - engines: {node: '>=10'}  
6798 - dev: true  
6799 -  
6800 - /type-fest/0.21.3:  
6801 - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}  
6802 - engines: {node: '>=10'}  
6803 - dev: true  
6804 -  
6805 - /type-fest/0.6.0:  
6806 - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}  
6807 - engines: {node: '>=8'}  
6808 - dev: true  
6809 -  
6810 - /type-fest/0.8.1:  
6811 - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}  
6812 - engines: {node: '>=8'}  
6813 - dev: true  
6814 -  
6815 - /type/1.2.0:  
6816 - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}  
6817 - dev: false  
6818 -  
6819 - /type/2.6.0:  
6820 - resolution: {integrity: sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==}  
6821 - dev: false  
6822 -  
6823 - /typescript/4.7.4:  
6824 - resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}  
6825 - engines: {node: '>=4.2.0'}  
6826 - hasBin: true  
6827 -  
6828 - /uglify-js/3.15.3:  
6829 - resolution: {integrity: sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==}  
6830 - engines: {node: '>=0.8.0'}  
6831 - hasBin: true  
6832 - requiresBuild: true  
6833 - dev: true  
6834 - optional: true  
6835 -  
6836 - /unc-path-regex/0.1.2:  
6837 - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==}  
6838 - engines: {node: '>=0.10.0'}  
6839 - dev: true  
6840 -  
6841 - /union-value/1.0.1:  
6842 - 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}  
6843 - engines: {node: '>=0.10.0'}  
6844 - dependencies:  
6845 - arr-union: 3.1.0  
6846 - get-value: 2.0.6  
6847 - is-extendable: 0.1.1  
6848 - set-value: 2.0.1  
6849 - dev: true  
6850 -  
6851 - /universalify/2.0.0:  
6852 - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}  
6853 - engines: {node: '>= 10.0.0'}  
6854 - dev: true  
6855 -  
6856 - /unpipe/1.0.0:  
6857 - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}  
6858 - engines: {node: '>= 0.8'}  
6859 - dev: true  
6860 -  
6861 - /unplugin-vue-define-options/0.6.2_r5lvqzud3cqtmwu636rwgh22ui:  
6862 - resolution: {integrity: sha512-0YAbugPnN57ZkUM0fygfp43Vm321vOUYy2s81O09SfCM08mSul4vMxOZxLj9VSa3NVPF/IN0FmGyTMB5exOdyQ==}  
6863 - engines: {node: '>=14.19.0'}  
6864 - peerDependencies:  
6865 - vue: ^3.2.25  
6866 - dependencies:  
6867 - '@rollup/pluginutils': 4.2.1  
6868 - '@vue/compiler-sfc': 3.2.37  
6869 - unplugin: 0.7.1_rollup@2.77.0+vite@3.0.1  
6870 - vue: 3.2.37  
6871 - transitivePeerDependencies:  
6872 - - esbuild  
6873 - - rollup  
6874 - - vite  
6875 - - webpack  
6876 - dev: true  
6877 -  
6878 - /unplugin/0.7.1_rollup@2.77.0+vite@3.0.1:  
6879 - resolution: {integrity: sha512-Z6hNDXDNh9aimMkPU1mEjtk+2ova8gh0y7rJeJdGH1vWZOHwF2lLQiQ/R97rv9ymmzEQXsR2fyMet72T8jy6ew==}  
6880 - peerDependencies:  
6881 - esbuild: '>=0.13'  
6882 - rollup: ^2.50.0  
6883 - vite: ^2.3.0 || ^3.0.0-0  
6884 - webpack: 4 || 5  
6885 - peerDependenciesMeta:  
6886 - esbuild:  
6887 - optional: true  
6888 - rollup:  
6889 - optional: true  
6890 - vite:  
6891 - optional: true  
6892 - webpack:  
6893 - optional: true  
6894 - dependencies:  
6895 - acorn: 8.7.1  
6896 - chokidar: 3.5.3  
6897 - rollup: 2.77.0  
6898 - vite: 3.0.1_less@4.1.3  
6899 - webpack-sources: 3.2.3  
6900 - webpack-virtual-modules: 0.4.4  
6901 - dev: true  
6902 -  
6903 - /unset-value/1.0.0:  
6904 - 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}  
6905 - engines: {node: '>=0.10.0'}  
6906 - dependencies:  
6907 - has-value: 0.3.1  
6908 - isobject: 3.0.1  
6909 - dev: true  
6910 -  
6911 - /upper-case-first/2.0.2:  
6912 - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}  
6913 - dependencies:  
6914 - tslib: 2.3.1  
6915 - dev: true  
6916 -  
6917 - /upper-case/2.0.2:  
6918 - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}  
6919 - dependencies:  
6920 - tslib: 2.3.1  
6921 - dev: true  
6922 -  
6923 - /uri-js/4.4.1:  
6924 - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}  
6925 - dependencies:  
6926 - punycode: 2.1.1  
6927 - dev: true  
6928 -  
6929 - /urix/0.1.0:  
6930 - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/urix/-/urix-0.1.0.tgz}  
6931 - deprecated: Please see https://github.com/lydell/urix#deprecated  
6932 - dev: true  
6933 -  
6934 - /use/3.1.1:  
6935 - 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}  
6936 - engines: {node: '>=0.10.0'}  
6937 - dev: true  
6938 -  
6939 - /util-deprecate/1.0.2:  
6940 - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}  
6941 - dev: true  
6942 -  
6943 - /utils-merge/1.0.1:  
6944 - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}  
6945 - engines: {node: '>= 0.4.0'}  
6946 - dev: true  
6947 -  
6948 - /v8-compile-cache-lib/3.0.1:  
6949 - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}  
6950 - dev: true  
6951 -  
6952 - /v8-compile-cache/2.3.0:  
6953 - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}  
6954 - dev: true  
6955 -  
6956 - /v8flags/4.0.0:  
6957 - resolution: {integrity: sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==}  
6958 - engines: {node: '>= 10.13.0'}  
6959 - dev: true  
6960 -  
6961 - /validate-npm-package-license/3.0.4:  
6962 - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}  
6963 - dependencies:  
6964 - spdx-correct: 3.1.1  
6965 - spdx-expression-parse: 3.0.1  
6966 - dev: true  
6967 -  
6968 - /vary/1.1.2:  
6969 - 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}  
6970 - engines: {node: '>= 0.8'}  
6971 - dev: true  
6972 -  
6973 - /vite-plugin-eslint/1.6.1_eslint@8.20.0+vite@3.0.1:  
6974 - resolution: {integrity: sha512-wXwGJ222zjlllHmmPXX6oSU8DbmYjnA6HHBYbOLT8WAc73j4/YAtBQHCVSoHOTPiT4TPzsuZSvputWwc86BweQ==}  
6975 - peerDependencies:  
6976 - eslint: '>=7'  
6977 - vite: ^2.0.0  
6978 - dependencies:  
6979 - '@rollup/pluginutils': 4.2.1  
6980 - '@types/eslint': 8.4.2  
6981 - eslint: 8.20.0  
6982 - rollup: 2.77.0  
6983 - vite: 3.0.1_less@4.1.3  
6984 - dev: true  
6985 -  
6986 - /vite-plugin-html/3.2.0_vite@3.0.1:  
6987 - 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}  
6988 - peerDependencies:  
6989 - vite: '>=2.0.0'  
6990 - dependencies:  
6991 - '@rollup/pluginutils': 4.2.0  
6992 - colorette: 2.0.16  
6993 - connect-history-api-fallback: 1.6.0  
6994 - consola: 2.15.3  
6995 - dotenv: 16.0.0  
6996 - dotenv-expand: 8.0.2  
6997 - ejs: 3.1.6  
6998 - fast-glob: 3.2.11  
6999 - fs-extra: 10.0.1  
7000 - html-minifier-terser: 6.1.0  
7001 - node-html-parser: 5.3.3  
7002 - pathe: 0.2.0  
7003 - vite: 3.0.1_less@4.1.3  
7004 - dev: true  
7005 -  
7006 - /vite-plugin-purge-icons/0.8.1_vite@3.0.1:  
7007 - 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}  
7008 - engines: {node: '>= 12'}  
7009 - peerDependencies:  
7010 - vite: ^2.0.0-beta.3  
7011 - dependencies:  
7012 - '@purge-icons/core': 0.8.0  
7013 - '@purge-icons/generated': 0.8.1  
7014 - rollup-plugin-purge-icons: 0.8.1  
7015 - vite: 3.0.1_less@4.1.3  
7016 - transitivePeerDependencies:  
7017 - - encoding  
7018 - - supports-color  
7019 - dev: true  
7020 -  
7021 - /vite-plugin-style-import/1.4.1_vite@3.0.1:  
7022 - resolution: {integrity: sha512-lJCRvm7+So0hHdnSJiJPg9gD5mxtL6YY0jmhEph+k7ArpsyvqOh6han2kG5htbWWDZxHkUN9d1BuTFL//yCLLQ==}  
7023 - peerDependencies:  
7024 - vite: '>=2.0.0'  
7025 - dependencies:  
7026 - '@rollup/pluginutils': 4.2.0  
7027 - change-case: 4.1.2  
7028 - debug: 4.3.4  
7029 - es-module-lexer: 0.9.3  
7030 - fs-extra: 10.0.1  
7031 - magic-string: 0.25.7  
7032 - vite: 3.0.1_less@4.1.3  
7033 - transitivePeerDependencies:  
7034 - - supports-color  
7035 - dev: true  
7036 -  
7037 - /vite-plugin-svg-icons/2.0.1_vite@3.0.1:  
7038 - 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}  
7039 - peerDependencies:  
7040 - vite: '>=2.0.0'  
7041 - dependencies:  
7042 - '@types/svgo': 2.6.1  
7043 - cors: 2.8.5  
7044 - debug: 4.3.3  
7045 - etag: 1.8.1  
7046 - fs-extra: 10.0.0  
7047 - pathe: 0.2.0  
7048 - svg-baker: registry.nlark.com/svg-baker/1.7.0  
7049 - svgo: 2.8.0  
7050 - vite: 3.0.1_less@4.1.3  
7051 - transitivePeerDependencies:  
7052 - - supports-color  
7053 - dev: true  
7054 -  
7055 - /vite-plugin-windicss/1.8.7_vite@3.0.1:  
7056 - resolution: {integrity: sha512-/zwQ8+RV+MSkbG0IGqsEma6r2R01NzN/aNpNjJD7VVAkxAptNznqDXOObFTskkWfZ+9m6KJZCOuCPgAFtQIzEA==}  
7057 - peerDependencies:  
7058 - vite: ^2.0.1 || ^3.0.0  
7059 - dependencies:  
7060 - '@windicss/plugin-utils': 1.8.7  
7061 - debug: 4.3.4  
7062 - kolorist: 1.5.1  
7063 - vite: 3.0.1_less@4.1.3  
7064 - windicss: 3.5.6  
7065 - transitivePeerDependencies:  
7066 - - supports-color  
7067 - dev: true  
7068 -  
7069 - /vite/3.0.1_less@4.1.3:  
7070 - resolution: {integrity: sha512-nefKSglkoEsDpYUkBuT2++L04ktcP8fz8dxLtmZdDdMyhubFSOLFw6BTh/46Fc6tIX/cibs/NVYWNrsqn0k6pQ==}  
7071 - engines: {node: ^14.18.0 || >=16.0.0}  
7072 - hasBin: true  
7073 - peerDependencies:  
7074 - less: '*'  
7075 - sass: '*'  
7076 - stylus: '*'  
7077 - terser: ^5.4.0  
7078 - peerDependenciesMeta:  
7079 - less:  
7080 - optional: true  
7081 - sass:  
7082 - optional: true  
7083 - stylus:  
7084 - optional: true  
7085 - terser:  
7086 - optional: true  
7087 - dependencies:  
7088 - esbuild: 0.14.49  
7089 - less: 4.1.3  
7090 - postcss: 8.4.14  
7091 - resolve: 1.22.1  
7092 - rollup: 2.77.0  
7093 - optionalDependencies:  
7094 - fsevents: 2.3.2  
7095 - dev: true  
7096 -  
7097 - /vue-cropper/1.0.3:  
7098 - resolution: {integrity: sha512-yDrZkE4H5vOiMA9WQHE+6rmXrZ1S9TMZasEPAZPKg/2I/nySHL4ECD1lNxt7+ofTPKT+9+2sQkCwagPqEqiqJg==}  
7099 - dev: false  
7100 -  
7101 - /vue-demi/0.12.1_vue@3.2.37:  
7102 - resolution: {integrity: sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==}  
7103 - engines: {node: '>=12'}  
7104 - hasBin: true  
7105 - requiresBuild: true  
7106 - peerDependencies:  
7107 - '@vue/composition-api': ^1.0.0-rc.1  
7108 - vue: ^3.0.0-0 || ^2.6.0  
7109 - peerDependenciesMeta:  
7110 - '@vue/composition-api':  
7111 - optional: true  
7112 - dependencies:  
7113 - vue: 3.2.37  
7114 - dev: false  
7115 -  
7116 - /vue-eslint-parser/9.0.2_eslint@8.20.0:  
7117 - resolution: {integrity: sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA==}  
7118 - engines: {node: ^14.17.0 || >=16.0.0}  
7119 - peerDependencies:  
7120 - eslint: '>=6.0.0'  
7121 - dependencies:  
7122 - debug: 4.3.4  
7123 - eslint: 8.20.0  
7124 - eslint-scope: 7.1.1  
7125 - eslint-visitor-keys: 3.3.0  
7126 - espree: 9.3.2  
7127 - esquery: 1.4.0  
7128 - lodash: 4.17.21  
7129 - semver: 7.3.7  
7130 - transitivePeerDependencies:  
7131 - - supports-color  
7132 - dev: true  
7133 -  
7134 - /vue-i18n/9.1.10_vue@3.2.37:  
7135 - resolution: {integrity: sha512-jpr7gV5KPk4n+sSPdpZT8Qx3XzTcNDWffRlHV/cT2NUyEf+sEgTTmLvnBAibjOFJ0zsUyZlVTAWH5DDnYep+1g==}  
7136 - engines: {node: '>= 10'}  
7137 - peerDependencies:  
7138 - vue: ^3.0.0  
7139 - dependencies:  
7140 - '@intlify/core-base': 9.1.10  
7141 - '@intlify/shared': 9.1.10  
7142 - '@intlify/vue-devtools': 9.1.10  
7143 - '@vue/devtools-api': 6.1.4  
7144 - vue: 3.2.37  
7145 -  
7146 - /vue-router/4.1.2_vue@3.2.37:  
7147 - resolution: {integrity: sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==}  
7148 - peerDependencies:  
7149 - vue: ^3.2.0  
7150 - dependencies:  
7151 - '@vue/devtools-api': 6.1.4  
7152 - vue: 3.2.37  
7153 - dev: false  
7154 -  
7155 - /vue-tsc/0.38.8_typescript@4.7.4:  
7156 - resolution: {integrity: sha512-hhyc5SODiekcYNXG08aNg17LogR19o3i14avVejo+Fm45Dqk9Ke6rb0M19HoTKdQGfZBgqg2VUboYxmtAukWeg==}  
7157 - hasBin: true  
7158 - peerDependencies:  
7159 - typescript: '*'  
7160 - dependencies:  
7161 - '@volar/vue-typescript': 0.38.8  
7162 - typescript: 4.7.4  
7163 - dev: true  
7164 -  
7165 - /vue-types/4.1.1_vue@3.2.37:  
7166 - 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}  
7167 - engines: {node: '>=12.16.0'}  
7168 - peerDependencies:  
7169 - vue: ^2.0.0 || ^3.0.0  
7170 - dependencies:  
7171 - is-plain-object: registry.nlark.com/is-plain-object/5.0.0  
7172 - vue: 3.2.37  
7173 - dev: false  
7174 -  
7175 - /vue/3.2.37:  
7176 - resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==}  
7177 - dependencies:  
7178 - '@vue/compiler-dom': 3.2.37  
7179 - '@vue/compiler-sfc': 3.2.37  
7180 - '@vue/runtime-dom': 3.2.37  
7181 - '@vue/server-renderer': 3.2.37_vue@3.2.37  
7182 - '@vue/shared': 3.2.37  
7183 -  
7184 - /wcwidth/1.0.1:  
7185 - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}  
7186 - dependencies:  
7187 - defaults: 1.0.3  
7188 - dev: true  
7189 -  
7190 - /web-storage-cache/1.1.1:  
7191 - 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}  
7192 - dev: false  
7193 -  
7194 - /webidl-conversions/3.0.1:  
7195 - 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}  
7196 - dev: true  
7197 -  
7198 - /webpack-sources/3.2.3:  
7199 - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}  
7200 - engines: {node: '>=10.13.0'}  
7201 - dev: true  
7202 -  
7203 - /webpack-virtual-modules/0.4.4:  
7204 - resolution: {integrity: sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==}  
7205 - dev: true  
7206 -  
7207 - /whatwg-url/5.0.0:  
7208 - 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}  
7209 - dependencies:  
7210 - tr46: 0.0.3  
7211 - webidl-conversions: 3.0.1  
7212 - dev: true  
7213 -  
7214 - /which-module/2.0.0:  
7215 - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==}  
7216 - dev: false  
7217 -  
7218 - /which/1.3.1:  
7219 - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}  
7220 - hasBin: true  
7221 - dependencies:  
7222 - isexe: 2.0.0  
7223 - dev: true  
7224 -  
7225 - /which/2.0.2:  
7226 - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}  
7227 - engines: {node: '>= 8'}  
7228 - hasBin: true  
7229 - dependencies:  
7230 - isexe: 2.0.0  
7231 - dev: true  
7232 -  
7233 - /wildcard/1.1.2:  
7234 - resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}  
7235 - dev: false  
7236 -  
7237 - /windicss-analysis/0.3.5:  
7238 - resolution: {integrity: sha512-g7306c47Yc9c0nAhVLwVDVYt+MQmxGfpg1Q06mP4+j5nqCrJgh18Km4HyL8BABv7wo6BdUN7FeVtxb+u5TokxA==}  
7239 - hasBin: true  
7240 - dependencies:  
7241 - '@windicss/plugin-utils': 1.8.4  
7242 - cac: 6.7.12  
7243 - connect: 3.7.0  
7244 - declass: 0.0.1  
7245 - fast-glob: 3.2.11  
7246 - fs-extra: 10.0.1  
7247 - sirv: 1.0.19  
7248 - transitivePeerDependencies:  
7249 - - supports-color  
7250 - dev: true  
7251 -  
7252 - /windicss/3.5.6:  
7253 - resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==}  
7254 - engines: {node: '>= 12'}  
7255 - hasBin: true  
7256 - dev: true  
7257 -  
7258 - /word-wrap/1.2.3:  
7259 - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}  
7260 - engines: {node: '>=0.10.0'}  
7261 - dev: true  
7262 -  
7263 - /wordwrap/1.0.0:  
7264 - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}  
7265 - dev: true  
7266 -  
7267 - /wrap-ansi/6.2.0:  
7268 - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}  
7269 - engines: {node: '>=8'}  
7270 - dependencies:  
7271 - ansi-styles: 4.3.0  
7272 - string-width: 4.2.3  
7273 - strip-ansi: 6.0.1  
7274 -  
7275 - /wrap-ansi/7.0.0:  
7276 - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}  
7277 - engines: {node: '>=10'}  
7278 - dependencies:  
7279 - ansi-styles: 4.3.0  
7280 - string-width: 4.2.3  
7281 - strip-ansi: 6.0.1  
7282 - dev: true  
7283 -  
7284 - /wrappy/1.0.2:  
7285 - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}  
7286 - dev: true  
7287 -  
7288 - /write-file-atomic/4.0.1:  
7289 - resolution: {integrity: sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==}  
7290 - engines: {node: ^12.13.0 || ^14.15.0 || >=16}  
7291 - dependencies:  
7292 - imurmurhash: 0.1.4  
7293 - signal-exit: 3.0.7  
7294 - dev: true  
7295 -  
7296 - /xml-name-validator/4.0.0:  
7297 - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}  
7298 - engines: {node: '>=12'}  
7299 - dev: true  
7300 -  
7301 - /y18n/4.0.3:  
7302 - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}  
7303 - dev: false  
7304 -  
7305 - /y18n/5.0.8:  
7306 - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}  
7307 - engines: {node: '>=10'}  
7308 - dev: true  
7309 -  
7310 - /yallist/4.0.0:  
7311 - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}  
7312 - dev: true  
7313 -  
7314 - /yaml-eslint-parser/0.3.2:  
7315 - resolution: {integrity: sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg==}  
7316 - dependencies:  
7317 - eslint-visitor-keys: 1.3.0  
7318 - lodash: 4.17.21  
7319 - yaml: 1.10.2  
7320 - dev: true  
7321 -  
7322 - /yaml/1.10.2:  
7323 - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}  
7324 - engines: {node: '>= 6'}  
7325 - dev: true  
7326 -  
7327 - /yaml/2.1.1:  
7328 - resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==}  
7329 - engines: {node: '>= 14'}  
7330 - dev: true  
7331 -  
7332 - /yargs-parser/18.1.3:  
7333 - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}  
7334 - engines: {node: '>=6'}  
7335 - dependencies:  
7336 - camelcase: 5.3.1  
7337 - decamelize: 1.2.0  
7338 - dev: false  
7339 -  
7340 - /yargs-parser/20.2.9:  
7341 - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}  
7342 - engines: {node: '>=10'}  
7343 - dev: true  
7344 -  
7345 - /yargs-parser/21.0.0:  
7346 - resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==}  
7347 - engines: {node: '>=12'}  
7348 - dev: true  
7349 -  
7350 - /yargs/15.4.1:  
7351 - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}  
7352 - engines: {node: '>=8'}  
7353 - dependencies:  
7354 - cliui: 6.0.0  
7355 - decamelize: 1.2.0  
7356 - find-up: 4.1.0  
7357 - get-caller-file: 2.0.5  
7358 - require-directory: 2.1.1  
7359 - require-main-filename: 2.0.0  
7360 - set-blocking: 2.0.0  
7361 - string-width: 4.2.3  
7362 - which-module: 2.0.0  
7363 - y18n: 4.0.3  
7364 - yargs-parser: 18.1.3  
7365 - dev: false  
7366 -  
7367 - /yargs/17.3.1:  
7368 - resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==}  
7369 - engines: {node: '>=12'}  
7370 - dependencies:  
7371 - cliui: 7.0.4  
7372 - escalade: 3.1.1  
7373 - get-caller-file: 2.0.5  
7374 - require-directory: 2.1.1  
7375 - string-width: 4.2.3  
7376 - y18n: 5.0.8  
7377 - yargs-parser: 21.0.0  
7378 - dev: true  
7379 -  
7380 - /yn/3.1.1:  
7381 - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}  
7382 - engines: {node: '>=6'}  
7383 - dev: true  
7384 -  
7385 - /yocto-queue/0.1.0:  
7386 - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}  
7387 - engines: {node: '>=10'}  
7388 - dev: true  
7389 -  
7390 - /zrender/5.3.2:  
7391 - resolution: {integrity: sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==}  
7392 - dependencies:  
7393 - tslib: 2.3.0  
7394 - dev: false  
7395 -  
7396 - registry.nlark.com/array-differ/3.0.0:  
7397 - resolution: {integrity: sha1-PLs9DzFoEOr8xHYkc0I31q7krms=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/array-differ/download/array-differ-3.0.0.tgz}  
7398 - name: array-differ  
7399 - version: 3.0.0  
7400 - engines: {node: '>=8'}  
7401 - dev: true  
7402 -  
7403 - registry.nlark.com/is-plain-object/5.0.0:  
7404 - 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}  
7405 - name: is-plain-object  
7406 - version: 5.0.0  
7407 - engines: {node: '>=0.10.0'}  
7408 - dev: false  
7409 -  
7410 - registry.nlark.com/lodash-es/4.17.21:  
7411 - 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}  
7412 - name: lodash-es  
7413 - version: 4.17.21  
7414 - dev: false  
7415 -  
7416 - registry.nlark.com/merge-options/1.0.1:  
7417 - 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}  
7418 - name: merge-options  
7419 - version: 1.0.1  
7420 - engines: {node: '>=4'}  
7421 - dependencies:  
7422 - is-plain-obj: 1.1.0  
7423 - dev: true  
7424 -  
7425 - registry.nlark.com/mri/1.2.0:  
7426 - resolution: {integrity: sha1-ZyFID+wqEaSImGERWki2y+fMjws=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mri/download/mri-1.2.0.tgz}  
7427 - name: mri  
7428 - version: 1.2.0  
7429 - engines: {node: '>=4'}  
7430 - dev: true  
7431 -  
7432 - registry.nlark.com/svg-baker/1.7.0:  
7433 - resolution: {integrity: sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/svg-baker/download/svg-baker-1.7.0.tgz}  
7434 - name: svg-baker  
7435 - version: 1.7.0  
7436 - dependencies:  
7437 - bluebird: 3.7.2  
7438 - clone: 2.1.2  
7439 - he: 1.2.0  
7440 - image-size: 0.5.5  
7441 - loader-utils: 1.4.0  
7442 - merge-options: registry.nlark.com/merge-options/1.0.1  
7443 - micromatch: 3.1.0  
7444 - postcss: 5.2.18  
7445 - postcss-prefix-selector: 1.14.0_postcss@5.2.18  
7446 - posthtml-rename-id: 1.0.12  
7447 - posthtml-svg-mode: 1.0.3  
7448 - query-string: 4.3.4  
7449 - traverse: 0.6.6  
7450 - transitivePeerDependencies:  
7451 - - supports-color  
7452 - dev: true  
yudao-ui-admin-vue3/src/api/infra/apiAccessLog/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import { ApiAccessLogVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询列表API 访问日志 5 // 查询列表API 访问日志
5 -export const getApiAccessLogPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<ApiAccessLogVO>>({ url: '/infra/api-access-log/page', params }) 6 +export const getApiAccessLogPageApi = (params) => {
  7 + return request.get({ url: '/infra/api-access-log/page', params })
7 } 8 }
8 9
9 // 导出API 访问日志 10 // 导出API 访问日志
10 export const exportApiAccessLogApi = (params) => { 11 export const exportApiAccessLogApi = (params) => {
11 - return defHttp.get({ url: '/infra/api-access-log/export-excel', params, responseType: 'blob' }) 12 + return request.get({ url: '/infra/api-access-log/export-excel', params, responseType: 'blob' })
12 } 13 }
yudao-ui-admin-vue3/src/api/infra/apiErrorLog/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import { ApiErrorLogVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询列表API 访问日志 5 // 查询列表API 访问日志
5 -export const getApiErrorLogPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<ApiErrorLogVO>>({ url: '/infra/api-error-log/page', params }) 6 +export const getApiErrorLogPageApi = (params) => {
  7 + return request.get({ url: '/infra/api-error-log/page', params })
7 } 8 }
8 9
9 // 更新 API 错误日志的处理状态 10 // 更新 API 错误日志的处理状态
10 export const updateApiErrorLogPageApi = (id: number, processStatus: number) => { 11 export const updateApiErrorLogPageApi = (id: number, processStatus: number) => {
11 - return defHttp.put({ 12 + return request.put({
12 url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus 13 url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus
13 }) 14 })
14 } 15 }
15 16
16 // 导出API 访问日志 17 // 导出API 访问日志
17 -export const exportApiErrorLogApi = ({ params }) => {  
18 - return defHttp.get({ url: '/infra/api-error-log/export-excel', params, responseType: 'blob' }) 18 +export const exportApiErrorLogApi = (params) => {
  19 + return request.get({ url: '/infra/api-error-log/export-excel', params, responseType: 'blob' })
19 } 20 }
yudao-ui-admin-vue3/src/api/infra/codegen/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import type { CodegenDetailVO, CodegenPreviewVO, CodegenTableVO, DatabaseTableVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +import type { CodegenTableVO } from './types'
  3 +
  4 +const request = useAxios()
3 5
4 // 查询列表代码生成表定义 6 // 查询列表代码生成表定义
5 -export const getCodegenTablePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<CodegenTableVO>>({ url: '/infra/codegen/table/page', params }) 7 +export const getCodegenTablePageApi = (params) => {
  8 + return request.get({ url: '/infra/codegen/table/page', params })
7 } 9 }
8 10
9 // 查询详情代码生成表定义 11 // 查询详情代码生成表定义
10 export const getCodegenTableApi = (id: number) => { 12 export const getCodegenTableApi = (id: number) => {
11 - return defHttp.get<CodegenDetailVO>({ url: '/infra/codegen/detail?tableId=' + id }) 13 + return request.get({ url: '/infra/codegen/detail?tableId=' + id })
12 } 14 }
13 15
14 // 新增代码生成表定义 16 // 新增代码生成表定义
15 -export const createCodegenTableApi = (params: CodegenTableVO) => {  
16 - return defHttp.post({ url: '/infra/codegen/create', params }) 17 +export const createCodegenTableApi = (data: CodegenTableVO) => {
  18 + return request.post({ url: '/infra/codegen/create', data })
17 } 19 }
18 20
19 // 修改代码生成表定义 21 // 修改代码生成表定义
20 -export const updateCodegenTableApi = (params: CodegenTableVO) => {  
21 - return defHttp.put({ url: '/infra/codegen/update', params }) 22 +export const updateCodegenTableApi = (data: CodegenTableVO) => {
  23 + return request.put({ url: '/infra/codegen/update', data })
22 } 24 }
23 25
24 // 基于数据库的表结构,同步数据库的表和字段定义 26 // 基于数据库的表结构,同步数据库的表和字段定义
25 export const syncCodegenFromDBApi = (id: number) => { 27 export const syncCodegenFromDBApi = (id: number) => {
26 - return defHttp.put({ url: '/infra/codegen/sync-from-db?tableId=' + id }) 28 + return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
27 } 29 }
28 30
29 // 基于 SQL 建表语句,同步数据库的表和字段定义 31 // 基于 SQL 建表语句,同步数据库的表和字段定义
30 export const syncCodegenFromSQLApi = (id: number, sql: string) => { 32 export const syncCodegenFromSQLApi = (id: number, sql: string) => {
31 - return defHttp.put({  
32 - url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql,  
33 - headers: {  
34 - 'Content-type': 'application/x-www-form-urlencoded'  
35 - }  
36 - }) 33 + return request.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql })
37 } 34 }
38 35
39 // 预览生成代码 36 // 预览生成代码
40 export const previewCodegenApi = (id: number) => { 37 export const previewCodegenApi = (id: number) => {
41 - return defHttp.get<CodegenPreviewVO[]>({ url: '/infra/codegen/preview?tableId=' + id }) 38 + return request.get({ url: '/infra/codegen/preview?tableId=' + id })
42 } 39 }
43 40
44 // 下载生成代码 41 // 下载生成代码
45 export const downloadCodegenApi = (id: number) => { 42 export const downloadCodegenApi = (id: number) => {
46 - return defHttp.get({ url: '/infra/codegen/download?tableId=' + id, responseType: 'blob' }) 43 + return request.get({ url: '/infra/codegen/download?tableId=' + id, responseType: 'blob' })
47 } 44 }
48 45
49 // 获得表定义 46 // 获得表定义
50 export const getSchemaTableListApi = (params) => { 47 export const getSchemaTableListApi = (params) => {
51 - return defHttp.get<DatabaseTableVO[]>({ url: '/infra/codegen/db/table/list', params }) 48 + return request.get({ url: '/infra/codegen/db/table/list', params })
52 } 49 }
53 50
54 // 基于数据库的表结构,创建代码生成器的表定义 51 // 基于数据库的表结构,创建代码生成器的表定义
55 -export const createCodegenListApi = (params) => {  
56 - return defHttp.post({ url: '/infra/codegen/create-list', params }) 52 +export const createCodegenListApi = (data) => {
  53 + return request.post({ url: '/infra/codegen/create-list', data })
57 } 54 }
58 55
59 // 删除代码生成表定义 56 // 删除代码生成表定义
60 export const deleteCodegenTableApi = (id: number) => { 57 export const deleteCodegenTableApi = (id: number) => {
61 - return defHttp.delete({ url: '/infra/codegen/delete?tableId=' + id }) 58 + return request.delete({ url: '/infra/codegen/delete?tableId=' + id })
62 } 59 }
yudao-ui-admin-vue3/src/api/infra/config/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { ConfigVO } from './types' 2 import type { ConfigVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询参数列表 6 // 查询参数列表
5 -export const getConfigPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<ConfigVO>>({ url: '/infra/config/page', params }) 7 +export const getConfigPageApi = (params) => {
  8 + return request.get({ url: '/infra/config/page', params })
7 } 9 }
8 10
9 // 查询参数详情 11 // 查询参数详情
10 export const getConfigApi = (id: number) => { 12 export const getConfigApi = (id: number) => {
11 - return defHttp.get<ConfigVO>({ url: '/infra/config/get?id=' + id }) 13 + return request.get({ url: '/infra/config/get?id=' + id })
12 } 14 }
13 15
14 // 根据参数键名查询参数值 16 // 根据参数键名查询参数值
15 export const getConfigKeyApi = (configKey: string) => { 17 export const getConfigKeyApi = (configKey: string) => {
16 - return defHttp.get<ConfigVO>({ url: '/infra/config/get-value-by-key?key=' + configKey }) 18 + return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey })
17 } 19 }
18 20
19 // 新增参数 21 // 新增参数
20 -export const createConfigApi = (params: ConfigVO) => {  
21 - return defHttp.post({ url: '/infra/config/create', params }) 22 +export const createConfigApi = (data: ConfigVO) => {
  23 + return request.post({ url: '/infra/config/create', data })
22 } 24 }
23 25
24 // 修改参数 26 // 修改参数
25 -export const updateConfigApi = (params: ConfigVO) => {  
26 - return defHttp.put({ url: '/infra/config/update', params }) 27 +export const updateConfigApi = (data: ConfigVO) => {
  28 + return request.put({ url: '/infra/config/update', data })
27 } 29 }
28 30
29 // 删除参数 31 // 删除参数
30 export const deleteConfigApi = (id: number) => { 32 export const deleteConfigApi = (id: number) => {
31 - return defHttp.delete({ url: '/infra/config/delete?id=' + id }) 33 + return request.delete({ url: '/infra/config/delete?id=' + id })
32 } 34 }
33 35
34 // 导出参数 36 // 导出参数
35 -export const exportConfigApi = ({ params }) => {  
36 - return defHttp.get({ url: '/infra/config/export', params, responseType: 'blob' }) 37 +export const exportConfigApi = (params) => {
  38 + return request.get({ url: '/infra/config/export', params, responseType: 'blob' })
37 } 39 }
yudao-ui-admin-vue3/src/api/infra/dataSourceConfig/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { DataSourceConfigVO } from './types' 2 import type { DataSourceConfigVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询数据源配置列表 6 // 查询数据源配置列表
5 export const getDataSourceConfigListApi = () => { 7 export const getDataSourceConfigListApi = () => {
6 - return defHttp.get<DataSourceConfigVO[]>({ url: '/infra/data-source-config/list' }) 8 + return request.get({ url: '/infra/data-source-config/list' })
7 } 9 }
8 10
9 // 查询数据源配置详情 11 // 查询数据源配置详情
10 export const getDataSourceConfigApi = (id: number) => { 12 export const getDataSourceConfigApi = (id: number) => {
11 - return defHttp.get<DataSourceConfigVO>({ url: '/infra/data-source-config/get?id=' + id }) 13 + return request.get({ url: '/infra/data-source-config/get?id=' + id })
12 } 14 }
13 15
14 // 新增数据源配置 16 // 新增数据源配置
15 -export const createDataSourceConfigApi = (params: DataSourceConfigVO) => {  
16 - return defHttp.post({ url: '/infra/data-source-config/create', params }) 17 +export const createDataSourceConfigApi = (data: DataSourceConfigVO) => {
  18 + return request.post({ url: '/infra/data-source-config/create', data })
17 } 19 }
18 20
19 // 修改数据源配置 21 // 修改数据源配置
20 -export const updateDataSourceConfigApi = (params: DataSourceConfigVO) => {  
21 - return defHttp.put({ url: '/infra/data-source-config/update', params }) 22 +export const updateDataSourceConfigApi = (data: DataSourceConfigVO) => {
  23 + return request.put({ url: '/infra/data-source-config/update', data })
22 } 24 }
23 25
24 // 删除数据源配置 26 // 删除数据源配置
25 export const deleteDataSourceConfigApi = (id: number) => { 27 export const deleteDataSourceConfigApi = (id: number) => {
26 - return defHttp.delete({ url: '/infra/data-source-config/delete?id=' + id }) 28 + return request.delete({ url: '/infra/data-source-config/delete?id=' + id })
27 } 29 }
yudao-ui-admin-vue3/src/api/infra/dbDoc/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
2 4
3 // 导出Html 5 // 导出Html
4 export const exportHtmlApi = () => { 6 export const exportHtmlApi = () => {
5 - return defHttp.get({ url: '/infra/db-doc/export-html', responseType: 'blob' }) 7 + return request.get({ url: '/infra/db-doc/export-html', responseType: 'blob' })
6 } 8 }
7 9
8 // 导出Word 10 // 导出Word
9 export const exportWordApi = () => { 11 export const exportWordApi = () => {
10 - return defHttp.get({ url: '/infra/db-doc/export-word', responseType: 'blob' }) 12 + return request.get({ url: '/infra/db-doc/export-word', responseType: 'blob' })
11 } 13 }
12 14
13 // 导出Markdown 15 // 导出Markdown
14 export const exportMarkdownApi = () => { 16 export const exportMarkdownApi = () => {
15 - return defHttp.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' }) 17 + return request.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' })
16 } 18 }
yudao-ui-admin-vue3/src/api/infra/file/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import type { FileVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询文件列表 5 // 查询文件列表
5 -export const getFilePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<FileVO>>({ url: '/infra/file/page', params }) 6 +export const getFilePageApi = (params) => {
  7 + return request.get({ url: '/infra/file/page', params })
7 } 8 }
8 9
9 // 删除文件 10 // 删除文件
10 export const deleteFileApi = (id: number) => { 11 export const deleteFileApi = (id: number) => {
11 - return defHttp.delete({ url: '/infra/file/delete?id=' + id }) 12 + return request.delete({ url: '/infra/file/delete?id=' + id })
12 } 13 }
yudao-ui-admin-vue3/src/api/infra/fileConfig/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { FileConfigVO } from './types' 2 import type { FileConfigVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询文件配置列表 6 // 查询文件配置列表
5 -export const getFileConfigPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<FileConfigVO>>({ url: '/infra/file-config/page', params }) 7 +export const getFileConfigPageApi = (params) => {
  8 + return request.get({ url: '/infra/file-config/page', params })
7 } 9 }
8 10
9 // 查询文件配置详情 11 // 查询文件配置详情
10 export const getFileConfigApi = (id: number) => { 12 export const getFileConfigApi = (id: number) => {
11 - return defHttp.get<FileConfigVO>({ url: '/infra/file-config/get?id=' + id }) 13 + return request.get({ url: '/infra/file-config/get?id=' + id })
12 } 14 }
13 15
14 // 更新文件配置为主配置 16 // 更新文件配置为主配置
15 export const updateFileConfigMasterApi = (id: number) => { 17 export const updateFileConfigMasterApi = (id: number) => {
16 - return defHttp.get<FileConfigVO>({ url: '/infra/file-config/update-master?id=' + id }) 18 + return request.get({ url: '/infra/file-config/update-master?id=' + id })
17 } 19 }
18 20
19 // 新增文件配置 21 // 新增文件配置
20 -export const createFileConfigApi = (params: FileConfigVO) => {  
21 - return defHttp.post({ url: '/infra/file-config/create', params }) 22 +export const createFileConfigApi = (data: FileConfigVO) => {
  23 + return request.post({ url: '/infra/file-config/create', data })
22 } 24 }
23 25
24 // 修改文件配置 26 // 修改文件配置
25 -export const updateFileConfigApi = (params: FileConfigVO) => {  
26 - return defHttp.put({ url: '/infra/file-config/update', params }) 27 +export const updateFileConfigApi = (data: FileConfigVO) => {
  28 + return request.put({ url: '/infra/file-config/update', data })
27 } 29 }
28 30
29 // 删除文件配置 31 // 删除文件配置
30 export const deleteFileConfigApi = (id: number) => { 32 export const deleteFileConfigApi = (id: number) => {
31 - return defHttp.delete({ url: '/infra/file-config/delete?id=' + id }) 33 + return request.delete({ url: '/infra/file-config/delete?id=' + id })
32 } 34 }
33 35
34 // 测试文件配置 36 // 测试文件配置
35 export const testFileConfigApi = (id: number) => { 37 export const testFileConfigApi = (id: number) => {
36 - return defHttp.get({ url: '/infra/file-config/test?id=' + id }) 38 + return request.get({ url: '/infra/file-config/test?id=' + id })
37 } 39 }
yudao-ui-admin-vue3/src/api/infra/job/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { JobVO } from './types' 2 import type { JobVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 任务列表 6 // 任务列表
5 -export const getJobPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<JobVO>>({ url: '/infra/job/page', params }) 7 +export const getJobPageApi = (params) => {
  8 + return request.get({ url: '/infra/job/page', params })
7 } 9 }
8 10
9 // 任务详情 11 // 任务详情
10 export const getJobApi = (id: number) => { 12 export const getJobApi = (id: number) => {
11 - return defHttp.get<JobVO>({ url: '/infra/job/get?id=' + id }) 13 + return request.get({ url: '/infra/job/get?id=' + id })
12 } 14 }
13 15
14 // 新增任务 16 // 新增任务
15 -export const createJobApi = (params: JobVO) => {  
16 - return defHttp.post({ url: '/infra/job/create', params }) 17 +export const createJobApi = (data: JobVO) => {
  18 + return request.post({ url: '/infra/job/create', data })
17 } 19 }
18 20
19 // 修改定时任务调度 21 // 修改定时任务调度
20 export const updateJobApi = (params: JobVO) => { 22 export const updateJobApi = (params: JobVO) => {
21 - return defHttp.put({ url: '/infra/job/update', params }) 23 + return request.put({ url: '/infra/job/update', params })
22 } 24 }
23 25
24 // 删除定时任务调度 26 // 删除定时任务调度
25 export const deleteJobApi = (id: number) => { 27 export const deleteJobApi = (id: number) => {
26 - return defHttp.delete({ url: '/infra/job/delete?id=' + id }) 28 + return request.delete({ url: '/infra/job/delete?id=' + id })
27 } 29 }
28 30
29 // 导出定时任务调度 31 // 导出定时任务调度
30 export const exportJobApi = (params) => { 32 export const exportJobApi = (params) => {
31 - return defHttp.get({  
32 - url: '/infra/job/export-excel',  
33 - params,  
34 - responseType: 'blob'  
35 - }) 33 + return request.get({ url: '/infra/job/export-excel', params, responseType: 'blob' })
36 } 34 }
37 35
38 // 任务状态修改 36 // 任务状态修改
@@ -41,15 +39,15 @@ export const updateJobStatusApi = (id: number, status: number) =&gt; { @@ -41,15 +39,15 @@ export const updateJobStatusApi = (id: number, status: number) =&gt; {
41 id, 39 id,
42 status 40 status
43 } 41 }
44 - return defHttp.put({ url: '/infra/job/update-status', data: data }) 42 + return request.put({ url: '/infra/job/update-status', data: data })
45 } 43 }
46 44
47 // 定时任务立即执行一次 45 // 定时任务立即执行一次
48 export const runJobApi = (id: number) => { 46 export const runJobApi = (id: number) => {
49 - return defHttp.put({ url: '/infra/job/trigger?id=' + id }) 47 + return request.put({ url: '/infra/job/trigger?id=' + id })
50 } 48 }
51 49
52 // 获得定时任务的下 n 次执行时间 50 // 获得定时任务的下 n 次执行时间
53 export const getJobNextTimesApi = (id: number) => { 51 export const getJobNextTimesApi = (id: number) => {
54 - return defHttp.get({ url: '/infra/job/get_next_times?id=' + id }) 52 + return request.get({ url: '/infra/job/get_next_times?id=' + id })
55 } 53 }
yudao-ui-admin-vue3/src/api/infra/jobLog/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import type { JobLogVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 任务日志列表 5 // 任务日志列表
5 -export const getJobLogPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<JobLogVO>>({ url: '/infra/job-log/page', params }) 6 +export const getJobLogPageApi = (params) => {
  7 + return request.get({ url: '/infra/job-log/page', params })
7 } 8 }
8 9
9 // 任务日志详情 10 // 任务日志详情
10 export const getJobLogApi = (id: number) => { 11 export const getJobLogApi = (id: number) => {
11 - return defHttp.get<JobLogVO>({ url: '/infra/job-log/get?id=' + id }) 12 + return request.get({ url: '/infra/job-log/get?id=' + id })
12 } 13 }
13 14
14 // 导出定时任务日志 15 // 导出定时任务日志
15 export const exportJobLogApi = (params) => { 16 export const exportJobLogApi = (params) => {
16 - return defHttp.get({ 17 + return request.get({
17 url: '/infra/job-log/export-excel', 18 url: '/infra/job-log/export-excel',
18 params, 19 params,
19 responseType: 'blob' 20 responseType: 'blob'
yudao-ui-admin-vue3/src/api/infra/redis/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import { RedisKeyInfo, RedisMonitorInfoVO } from '@/api/infra/redis/types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 /** 5 /**
5 * 获取redis 监控信息 6 * 获取redis 监控信息
6 */ 7 */
7 -export const redisMonitorInfo = () => {  
8 - return defHttp.get<RedisMonitorInfoVO>({ url: '/infra/redis/get-monitor-info' }) 8 +export const getCacheApi = () => {
  9 + return request.get({ url: '/infra/redis/get-monitor-info' })
  10 +}
  11 +// 获取模块
  12 +export const getKeyDefineListApi = () => {
  13 + return request.get({ url: '/infra/redis/get-key-define-list' })
9 } 14 }
10 -  
11 /** 15 /**
12 * 获取redis key列表 16 * 获取redis key列表
13 */ 17 */
14 -export const redisKeysInfo = () => {  
15 - return defHttp.get<RedisKeyInfo[]>({ url: '/infra/redis/get-key-list' }) 18 +export const getKeyListApi = (keyTemplate: string) => {
  19 + return request.get({
  20 + url: '/infra/redis/get-key-list',
  21 + params: {
  22 + keyTemplate
  23 + }
  24 + })
16 } 25 }
yudao-ui-admin-vue3/src/api/login/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import { getRefreshToken } from '@/utils/auth' 2 import { getRefreshToken } from '@/utils/auth'
3 -import type { UserLoginVO, TokenType, UserInfoVO } from './types' 3 +import type { UserLoginVO } from './types'
  4 +
  5 +const request = useAxios()
4 6
5 export interface CodeImgResult { 7 export interface CodeImgResult {
6 captchaOnOff: boolean 8 captchaOnOff: boolean
@@ -18,45 +20,45 @@ export interface SmsLoginVO { @@ -18,45 +20,45 @@ export interface SmsLoginVO {
18 20
19 // 获取验证码 21 // 获取验证码
20 export const getCodeImgApi = () => { 22 export const getCodeImgApi = () => {
21 - return defHttp.get<CodeImgResult>({ url: '/system/captcha/get-image' }) 23 + return request.get({ url: '/system/captcha/get-image' })
22 } 24 }
23 25
24 // 登录 26 // 登录
25 -export const loginApi = (params: UserLoginVO) => {  
26 - return defHttp.post<TokenType>({ url: '/system/auth/login', params }) 27 +export const loginApi = (data: UserLoginVO) => {
  28 + return request.post({ url: '/system/auth/login', data })
27 } 29 }
28 30
29 // 刷新访问令牌 31 // 刷新访问令牌
30 export const refreshToken = () => { 32 export const refreshToken = () => {
31 - return defHttp.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() }) 33 + return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() })
32 } 34 }
33 35
34 // 使用租户名,获得租户编号 36 // 使用租户名,获得租户编号
35 export const getTenantIdByNameApi = (name: string) => { 37 export const getTenantIdByNameApi = (name: string) => {
36 - return defHttp.get({ url: '/system/tenant/get-id-by-name?name=' + name }) 38 + return request.get({ url: '/system/tenant/get-id-by-name?name=' + name })
37 } 39 }
38 40
39 // 登出 41 // 登出
40 export const loginOutApi = () => { 42 export const loginOutApi = () => {
41 - return defHttp.delete({ url: '/system/auth/logout' }) 43 + return request.delete({ url: '/system/auth/logout' })
42 } 44 }
43 45
44 // 获取用户权限信息 46 // 获取用户权限信息
45 export const getInfoApi = () => { 47 export const getInfoApi = () => {
46 - return defHttp.get<UserInfoVO>({ url: '/system/auth/get-permission-info' }) 48 + return request.get({ url: '/system/auth/get-permission-info' })
47 } 49 }
48 50
49 // 路由 51 // 路由
50 export const getAsyncRoutesApi = () => { 52 export const getAsyncRoutesApi = () => {
51 - return defHttp.get({ url: '/system/auth/list-menus' }) 53 + return request.get({ url: '/system/auth/list-menus' })
52 } 54 }
53 55
54 //获取登录验证码 56 //获取登录验证码
55 -export const sendSmsCodeApi = (params: SmsCodeVO) => {  
56 - return defHttp.post({ url: '/system/auth/send-sms-code', params }) 57 +export const sendSmsCodeApi = (data: SmsCodeVO) => {
  58 + return request.post({ url: '/system/auth/send-sms-code', data })
57 } 59 }
58 60
59 // 短信验证码登录 61 // 短信验证码登录
60 -export const smsLoginApi = (params: SmsLoginVO) => {  
61 - return defHttp.post({ url: '/system/auth/sms-login', params }) 62 +export const smsLoginApi = (data: SmsLoginVO) => {
  63 + return request.post({ url: '/system/auth/sms-login', data })
62 } 64 }
yudao-ui-admin-vue3/src/api/pay/app/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { AppVO } from './types' 2 import type { AppVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询列表支付应用 6 // 查询列表支付应用
5 -export const getAppPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<AppVO>>({ url: '/pay/app/page', params }) 7 +export const getAppPageApi = (params) => {
  8 + return request.get({ url: '/pay/app/page', params })
7 } 9 }
8 10
9 // 查询详情支付应用 11 // 查询详情支付应用
10 export const getAppApi = (id: number) => { 12 export const getAppApi = (id: number) => {
11 - return defHttp.get<AppVO>({ url: '/pay/app/get?id=' + id }) 13 + return request.get({ url: '/pay/app/get?id=' + id })
12 } 14 }
13 15
14 // 新增支付应用 16 // 新增支付应用
15 -export const createAppApi = (params: AppVO) => {  
16 - return defHttp.post({ url: '/pay/app/create', params }) 17 +export const createAppApi = (data: AppVO) => {
  18 + return request.post({ url: '/pay/app/create', data })
17 } 19 }
18 20
19 // 修改支付应用 21 // 修改支付应用
20 -export const updateAppApi = (params: AppVO) => {  
21 - return defHttp.put({ url: '/pay/app/update', params }) 22 +export const updateAppApi = (data: AppVO) => {
  23 + return request.put({ url: '/pay/app/update', data })
22 } 24 }
23 25
24 // 支付应用信息状态修改 26 // 支付应用信息状态修改
@@ -27,20 +29,20 @@ export const changeAppStatusApi = (id: number, status: number) =&gt; { @@ -27,20 +29,20 @@ export const changeAppStatusApi = (id: number, status: number) =&gt; {
27 id, 29 id,
28 status 30 status
29 } 31 }
30 - return defHttp.put({ url: '/pay/app/update-status', data: data }) 32 + return request.put({ url: '/pay/app/update-status', data: data })
31 } 33 }
32 34
33 // 删除支付应用 35 // 删除支付应用
34 export const deleteAppApi = (id: number) => { 36 export const deleteAppApi = (id: number) => {
35 - return defHttp.delete({ url: '/pay/app/delete?id=' + id }) 37 + return request.delete({ url: '/pay/app/delete?id=' + id })
36 } 38 }
37 39
38 // 导出支付应用 40 // 导出支付应用
39 export const exportAppApi = (params) => { 41 export const exportAppApi = (params) => {
40 - return defHttp.get({ url: '/pay/app/export-excel', params, responseType: 'blob' }) 42 + return request.get({ url: '/pay/app/export-excel', params, responseType: 'blob' })
41 } 43 }
42 44
43 // 根据商ID称搜索应用列表 45 // 根据商ID称搜索应用列表
44 export const getAppListByMerchantIdApi = (merchantId: number) => { 46 export const getAppListByMerchantIdApi = (merchantId: number) => {
45 - return defHttp.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } }) 47 + return request.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } })
46 } 48 }
yudao-ui-admin-vue3/src/api/pay/channel/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { ChannelVO } from './types' 2 import type { ChannelVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询列表支付渠道 6 // 查询列表支付渠道
5 -export const getChannelPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<ChannelVO>>({ url: '/pay/channel/page', params }) 7 +export const getChannelPageApi = (params) => {
  8 + return request.get({ url: '/pay/channel/page', params })
7 } 9 }
8 10
9 // 查询详情支付渠道 11 // 查询详情支付渠道
@@ -13,25 +15,25 @@ export const getChannelApi = (merchantId: number, appId: string, code: string) = @@ -13,25 +15,25 @@ export const getChannelApi = (merchantId: number, appId: string, code: string) =
13 appId: appId, 15 appId: appId,
14 code: code 16 code: code
15 } 17 }
16 - return defHttp.get<ChannelVO>({ url: '/pay/channel/get-channel', params: params }) 18 + return request.get({ url: '/pay/channel/get-channel', params: params })
17 } 19 }
18 20
19 // 新增支付渠道 21 // 新增支付渠道
20 -export const createChannelApi = (params: ChannelVO) => {  
21 - return defHttp.post({ url: '/pay/channel/create', params }) 22 +export const createChannelApi = (data: ChannelVO) => {
  23 + return request.post({ url: '/pay/channel/create', data })
22 } 24 }
23 25
24 // 修改支付渠道 26 // 修改支付渠道
25 -export const updateChannelApi = (params: ChannelVO) => {  
26 - return defHttp.put({ url: '/pay/channel/update', params }) 27 +export const updateChannelApi = (data: ChannelVO) => {
  28 + return request.put({ url: '/pay/channel/update', data })
27 } 29 }
28 30
29 // 删除支付渠道 31 // 删除支付渠道
30 export const deleteChannelApi = (id: number) => { 32 export const deleteChannelApi = (id: number) => {
31 - return defHttp.delete({ url: '/pay/channel/delete?id=' + id }) 33 + return request.delete({ url: '/pay/channel/delete?id=' + id })
32 } 34 }
33 35
34 // 导出支付渠道 36 // 导出支付渠道
35 export const exportChannelApi = (params) => { 37 export const exportChannelApi = (params) => {
36 - return defHttp.get({ url: '/pay/channel/export-excel', params, responseType: 'blob' }) 38 + return request.get({ url: '/pay/channel/export-excel', params, responseType: 'blob' })
37 } 39 }
yudao-ui-admin-vue3/src/api/pay/merchant/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { MerchantVO } from './types' 2 import type { MerchantVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询列表支付商户 6 // 查询列表支付商户
5 -export const getMerchantPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<MerchantVO>>({ url: '/pay/merchant/page', params }) 7 +export const getMerchantPageApi = (params) => {
  8 + return request.get({ url: '/pay/merchant/page', params })
7 } 9 }
8 10
9 // 查询详情支付商户 11 // 查询详情支付商户
10 export const getMerchantApi = (id: number) => { 12 export const getMerchantApi = (id: number) => {
11 - return defHttp.get<MerchantVO>({ url: '/pay/merchant/get?id=' + id }) 13 + return request.get({ url: '/pay/merchant/get?id=' + id })
12 } 14 }
13 15
14 // 根据商户名称搜索商户列表 16 // 根据商户名称搜索商户列表
15 export const getMerchantListByNameApi = (name: string) => { 17 export const getMerchantListByNameApi = (name: string) => {
16 - return defHttp.get<MerchantVO>({ 18 + return request.get({
17 url: '/pay/merchant/list-by-name?id=', 19 url: '/pay/merchant/list-by-name?id=',
18 params: { 20 params: {
19 name: name 21 name: name
@@ -22,23 +24,23 @@ export const getMerchantListByNameApi = (name: string) =&gt; { @@ -22,23 +24,23 @@ export const getMerchantListByNameApi = (name: string) =&gt; {
22 } 24 }
23 25
24 // 新增支付商户 26 // 新增支付商户
25 -export const createMerchantApi = (params: MerchantVO) => {  
26 - return defHttp.post({ url: '/pay/merchant/create', params }) 27 +export const createMerchantApi = (data: MerchantVO) => {
  28 + return request.post({ url: '/pay/merchant/create', data })
27 } 29 }
28 30
29 // 修改支付商户 31 // 修改支付商户
30 -export const updateMerchantApi = (params: MerchantVO) => {  
31 - return defHttp.put({ url: '/pay/merchant/update', params }) 32 +export const updateMerchantApi = (data: MerchantVO) => {
  33 + return request.put({ url: '/pay/merchant/update', data })
32 } 34 }
33 35
34 // 删除支付商户 36 // 删除支付商户
35 export const deleteMerchantApi = (id: number) => { 37 export const deleteMerchantApi = (id: number) => {
36 - return defHttp.delete({ url: '/pay/merchant/delete?id=' + id }) 38 + return request.delete({ url: '/pay/merchant/delete?id=' + id })
37 } 39 }
38 40
39 // 导出支付商户 41 // 导出支付商户
40 export const exportMerchantApi = (params) => { 42 export const exportMerchantApi = (params) => {
41 - return defHttp.get({ url: '/pay/merchant/export-excel', params, responseType: 'blob' }) 43 + return request.get({ url: '/pay/merchant/export-excel', params, responseType: 'blob' })
42 } 44 }
43 // 支付商户状态修改 45 // 支付商户状态修改
44 export const changeMerchantStatusApi = (id: number, status: number) => { 46 export const changeMerchantStatusApi = (id: number, status: number) => {
@@ -46,5 +48,5 @@ export const changeMerchantStatusApi = (id: number, status: number) =&gt; { @@ -46,5 +48,5 @@ export const changeMerchantStatusApi = (id: number, status: number) =&gt; {
46 id, 48 id,
47 status 49 status
48 } 50 }
49 - return defHttp.put({ url: '/pay/merchant/update-status', data: data }) 51 + return request.put({ url: '/pay/merchant/update-status', data: data })
50 } 52 }
yudao-ui-admin-vue3/src/api/pay/order/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { OrderVO } from './types' 2 import type { OrderVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询列表支付订单 6 // 查询列表支付订单
5 -export const getOrderPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<OrderVO>>({ url: '/pay/order/page', params }) 7 +export const getOrderPageApi = async (params) => {
  8 + return await request.get({ url: '/pay/order/page', params })
7 } 9 }
8 10
9 // 查询详情支付订单 11 // 查询详情支付订单
10 -export const getOrderApi = (id: number) => {  
11 - return defHttp.get<OrderVO>({ url: '/pay/order/get?id=' + id }) 12 +export const getOrderApi = async (id: number) => {
  13 + return await request.get({ url: '/pay/order/get?id=' + id })
12 } 14 }
13 15
14 // 新增支付订单 16 // 新增支付订单
15 -export const createOrderApi = (params: OrderVO) => {  
16 - return defHttp.post({ url: '/pay/order/create', params }) 17 +export const createOrderApi = async (data: OrderVO) => {
  18 + return await request.post({ url: '/pay/order/create', data })
17 } 19 }
18 20
19 // 修改支付订单 21 // 修改支付订单
20 -export const updateOrderApi = (params: OrderVO) => {  
21 - return defHttp.put({ url: '/pay/order/update', params }) 22 +export const updateOrderApi = async (data: OrderVO) => {
  23 + return await request.put({ url: '/pay/order/update', data })
22 } 24 }
23 25
24 // 删除支付订单 26 // 删除支付订单
25 -export const deleteOrderApi = (id: number) => {  
26 - return defHttp.delete({ url: '/pay/order/delete?id=' + id }) 27 +export const deleteOrderApi = async (id: number) => {
  28 + return await request.delete({ url: '/pay/order/delete?id=' + id })
27 } 29 }
28 30
29 // 导出支付订单 31 // 导出支付订单
30 -export const exportOrderApi = (params) => {  
31 - return defHttp.get({ url: '/pay/order/export-excel', params, responseType: 'blob' }) 32 +export const exportOrderApi = async (params) => {
  33 + return await request.get({ url: '/pay/order/export-excel', params, responseType: 'blob' })
32 } 34 }
yudao-ui-admin-vue3/src/api/pay/refund/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { RefundVO } from './types' 2 import type { RefundVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询列表退款订单 6 // 查询列表退款订单
5 -export const getRefundPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<RefundVO>>({ url: '/pay/refund/page', params }) 7 +export const getRefundPageApi = (params) => {
  8 + return request.get({ url: '/pay/refund/page', params })
7 } 9 }
8 10
9 // 查询详情退款订单 11 // 查询详情退款订单
10 export const getRefundApi = (id: number) => { 12 export const getRefundApi = (id: number) => {
11 - return defHttp.get<RefundVO>({ url: '/pay/refund/get?id=' + id }) 13 + return request.get({ url: '/pay/refund/get?id=' + id })
12 } 14 }
13 15
14 // 新增退款订单 16 // 新增退款订单
15 -export const createRefundApi = (params: RefundVO) => {  
16 - return defHttp.post({ url: '/pay/refund/create', params }) 17 +export const createRefundApi = (data: RefundVO) => {
  18 + return request.post({ url: '/pay/refund/create', data })
17 } 19 }
18 20
19 // 修改退款订单 21 // 修改退款订单
20 -export const updateRefundApi = (params: RefundVO) => {  
21 - return defHttp.put({ url: '/pay/refund/update', params }) 22 +export const updateRefundApi = (data: RefundVO) => {
  23 + return request.put({ url: '/pay/refund/update', data })
22 } 24 }
23 25
24 // 删除退款订单 26 // 删除退款订单
25 export const deleteRefundApi = (id: number) => { 27 export const deleteRefundApi = (id: number) => {
26 - return defHttp.delete({ url: '/pay/refund/delete?id=' + id }) 28 + return request.delete({ url: '/pay/refund/delete?id=' + id })
27 } 29 }
28 30
29 // 导出退款订单 31 // 导出退款订单
30 export const exportRefundApi = (params) => { 32 export const exportRefundApi = (params) => {
31 - return defHttp.get({ url: '/pay/refund/export-excel', params, responseType: 'blob' }) 33 + return request.get({ url: '/pay/refund/export-excel', params, responseType: 'blob' })
32 } 34 }
yudao-ui-admin-vue3/src/api/system/dept/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { DeptVO } from './types' 2 import type { DeptVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询部门(精简)列表 6 // 查询部门(精简)列表
5 export const listSimpleDeptApi = () => { 7 export const listSimpleDeptApi = () => {
6 - return defHttp.get({ url: '/system/dept/list-all-simple' }) 8 + return request.get({ url: '/system/dept/list-all-simple' })
7 } 9 }
8 10
9 // 查询部门列表 11 // 查询部门列表
10 -export const getDeptPageApi = ({ params }) => {  
11 - return defHttp.get<PageResult<DeptVO>>({ url: '/system/dept/list', params }) 12 +export const getDeptPageApi = (params) => {
  13 + return request.get({ url: '/system/dept/list', params })
12 } 14 }
13 15
14 // 查询部门详情 16 // 查询部门详情
15 export const getDeptApi = (id: number) => { 17 export const getDeptApi = (id: number) => {
16 - return defHttp.get<DeptVO>({ url: '/system/dept/get?id=' + id }) 18 + return request.get({ url: '/system/dept/get?id=' + id })
17 } 19 }
18 20
19 // 新增部门 21 // 新增部门
20 -export const createDeptApi = (params: DeptVO) => {  
21 - return defHttp.post({ url: '/system/dept/create', data: params }) 22 +export const createDeptApi = (data: DeptVO) => {
  23 + return request.post({ url: '/system/dept/create', data: data })
22 } 24 }
23 25
24 // 修改部门 26 // 修改部门
25 export const updateDeptApi = (params: DeptVO) => { 27 export const updateDeptApi = (params: DeptVO) => {
26 - return defHttp.put({ url: '/system/dept/update', data: params }) 28 + return request.put({ url: '/system/dept/update', data: params })
27 } 29 }
28 30
29 // 删除部门 31 // 删除部门
30 export const deleteDeptApi = (id: number) => { 32 export const deleteDeptApi = (id: number) => {
31 - return defHttp.delete({ url: '/system/dept/delete?id=' + id }) 33 + return request.delete({ url: '/system/dept/delete?id=' + id })
32 } 34 }
yudao-ui-admin-vue3/src/api/system/dict/dict.data.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { DictDataVO } from './types' 2 import type { DictDataVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询字典数据(精简)列表 6 // 查询字典数据(精简)列表
5 export const listSimpleDictDataApi = () => { 7 export const listSimpleDictDataApi = () => {
6 - return defHttp.get({ url: '/system/dict-data/list-all-simple' }) 8 + return request.get({ url: '/system/dict-data/list-all-simple' })
7 } 9 }
8 10
9 // 查询字典数据列表 11 // 查询字典数据列表
10 -export const getDictDataPageApi = ({ params }) => {  
11 - return defHttp.get<PageResult<DictDataVO>>({ url: '/system/dict-data/page', params }) 12 +export const getDictDataPageApi = (params) => {
  13 + return request.get({ url: '/system/dict-data/page', params })
12 } 14 }
13 15
14 // 查询字典数据详情 16 // 查询字典数据详情
15 export const getDictDataApi = (id: number) => { 17 export const getDictDataApi = (id: number) => {
16 - return defHttp.get({ url: '/system/dict-data/get?id=' + id }) 18 + return request.get({ url: '/system/dict-data/get?id=' + id })
17 } 19 }
18 20
19 // 新增字典数据 21 // 新增字典数据
20 -export const createDictDataApi = (params: DictDataVO) => {  
21 - return defHttp.post({ url: '/system/dict-data/create', params }) 22 +export const createDictDataApi = (data: DictDataVO) => {
  23 + return request.post({ url: '/system/dict-data/create', data })
22 } 24 }
23 25
24 // 修改字典数据 26 // 修改字典数据
25 -export const updateDictDataApi = (params: DictDataVO) => {  
26 - return defHttp.put({ url: '/system/dict-data/update', params }) 27 +export const updateDictDataApi = (data: DictDataVO) => {
  28 + return request.put({ url: '/system/dict-data/update', data })
27 } 29 }
28 30
29 // 删除字典数据 31 // 删除字典数据
30 export const deleteDictDataApi = (id: number) => { 32 export const deleteDictDataApi = (id: number) => {
31 - return defHttp.delete({ url: '/system/dict-data/delete?id=' + id }) 33 + return request.delete({ url: '/system/dict-data/delete?id=' + id })
32 } 34 }
33 // 导出字典类型数据 35 // 导出字典类型数据
34 export const exportDictDataApi = (params: DictDataVO) => { 36 export const exportDictDataApi = (params: DictDataVO) => {
35 - return defHttp.get({ url: '/system/dict-data/export', params }) 37 + return request.get({ url: '/system/dict-data/export', params })
36 } 38 }
yudao-ui-admin-vue3/src/api/system/dict/dict.type.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { DictTypeVO } from './types' 2 import type { DictTypeVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询字典(精简)列表 6 // 查询字典(精简)列表
5 export const listSimpleDictTypeApi = () => { 7 export const listSimpleDictTypeApi = () => {
6 - return defHttp.get({ url: '/system/dict-type/list-all-simple' }) 8 + return request.get({ url: '/system/dict-type/list-all-simple' })
7 } 9 }
8 10
9 // 查询字典列表 11 // 查询字典列表
10 -export const getDictTypePageApi = ({ params }) => {  
11 - return defHttp.get<PageResult<DictTypeVO>>({ url: '/system/dict-type/page', params }) 12 +export const getDictTypePageApi = (params) => {
  13 + return request.get({ url: '/system/dict-type/page', params })
12 } 14 }
13 15
14 // 查询字典详情 16 // 查询字典详情
15 export const getDictTypeApi = (id: number) => { 17 export const getDictTypeApi = (id: number) => {
16 - return defHttp.get({ url: '/system/dict-type/get?id=' + id }) 18 + return request.get({ url: '/system/dict-type/get?id=' + id })
17 } 19 }
18 20
19 // 新增字典 21 // 新增字典
20 -export const createDictTypeApi = (params: DictTypeVO) => {  
21 - return defHttp.post({ url: '/system/dict-type/create', params }) 22 +export const createDictTypeApi = (data: DictTypeVO) => {
  23 + return request.post({ url: '/system/dict-type/create', data })
22 } 24 }
23 25
24 // 修改字典 26 // 修改字典
25 -export const updateDictTypeApi = (params: DictTypeVO) => {  
26 - return defHttp.put({ url: '/system/dict-type/update', params }) 27 +export const updateDictTypeApi = (data: DictTypeVO) => {
  28 + return request.put({ url: '/system/dict-type/update', data })
27 } 29 }
28 30
29 // 删除字典 31 // 删除字典
30 export const deleteDictTypeApi = (id: number) => { 32 export const deleteDictTypeApi = (id: number) => {
31 - return defHttp.delete({ url: '/system/dict-type/delete?id=' + id }) 33 + return request.delete({ url: '/system/dict-type/delete?id=' + id })
32 } 34 }
33 // 导出字典类型 35 // 导出字典类型
34 export const exportDictTypeApi = (params: DictTypeVO) => { 36 export const exportDictTypeApi = (params: DictTypeVO) => {
35 - return defHttp.get({ url: '/system/dict-type/export', params }) 37 + return request.get({ url: '/system/dict-type/export', params })
36 } 38 }
yudao-ui-admin-vue3/src/api/system/errorCode/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { ErrorCodeVO } from './types' 2 import type { ErrorCodeVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询错误码列表 6 // 查询错误码列表
5 -export const getErrorCodePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<ErrorCodeVO>>({ url: '/system/error-code/page', params }) 7 +export const getErrorCodePageApi = (params) => {
  8 + return request.get({ url: '/system/error-code/page', params })
7 } 9 }
8 10
9 // 查询错误码详情 11 // 查询错误码详情
10 export const getErrorCodeApi = (id: number) => { 12 export const getErrorCodeApi = (id: number) => {
11 - return defHttp.get<ErrorCodeVO>({ url: '/system/error-code/get?id=' + id }) 13 + return request.get({ url: '/system/error-code/get?id=' + id })
12 } 14 }
13 15
14 // 新增错误码 16 // 新增错误码
15 -export const createErrorCodeApi = (params: ErrorCodeVO) => {  
16 - return defHttp.post({ url: '/system/error-code/create', params }) 17 +export const createErrorCodeApi = (data: ErrorCodeVO) => {
  18 + return request.post({ url: '/system/error-code/create', data })
17 } 19 }
18 20
19 // 修改错误码 21 // 修改错误码
20 -export const updateErrorCodeApi = (params: ErrorCodeVO) => {  
21 - return defHttp.put({ url: '/system/error-code/update', params }) 22 +export const updateErrorCodeApi = (data: ErrorCodeVO) => {
  23 + return request.put({ url: '/system/error-code/update', data })
22 } 24 }
23 25
24 // 删除错误码 26 // 删除错误码
25 export const deleteErrorCodeApi = (id: number) => { 27 export const deleteErrorCodeApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/error-code/delete?id=' + id }) 28 + return request.delete({ url: '/system/error-code/delete?id=' + id })
27 } 29 }
28 // 导出错误码 30 // 导出错误码
29 export const excelErrorCodeApi = (params) => { 31 export const excelErrorCodeApi = (params) => {
30 - return defHttp.get({ url: '/system/error-code/export-excel', params, responseType: 'blob' }) 32 + return request.get({ url: '/system/error-code/export-excel', params, responseType: 'blob' })
31 } 33 }
yudao-ui-admin-vue3/src/api/system/loginLog/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import type { LoginLogVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询登录日志列表 5 // 查询登录日志列表
5 -export const getLoginLogPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<LoginLogVO>>({ url: '/system/login-log/page', params }) 6 +export const getLoginLogPageApi = (params) => {
  7 + return request.get({ url: '/system/login-log/page', params })
7 } 8 }
8 // 导出登录日志 9 // 导出登录日志
9 export const exportLoginLogApi = (params) => { 10 export const exportLoginLogApi = (params) => {
10 - return defHttp.get({ url: '/system/login-log/export', params, responseType: 'blob' }) 11 + return request.get({ url: '/system/login-log/export', params, responseType: 'blob' })
11 } 12 }
yudao-ui-admin-vue3/src/api/system/menu/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { MenuVO } from './types' 2 import type { MenuVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询菜单(精简)列表 6 // 查询菜单(精简)列表
5 export const listSimpleMenusApi = () => { 7 export const listSimpleMenusApi = () => {
6 - return defHttp.get({ url: '/system/menu/list-all-simple' }) 8 + return request.get({ url: '/system/menu/list-all-simple' })
7 } 9 }
8 // 查询菜单列表 10 // 查询菜单列表
9 export const getMenuListApi = (params) => { 11 export const getMenuListApi = (params) => {
10 - return defHttp.get({ url: '/system/menu/list', params }) 12 + return request.get({ url: '/system/menu/list', params })
11 } 13 }
12 14
13 // 获取菜单详情 15 // 获取菜单详情
14 export const getMenuApi = (id: number) => { 16 export const getMenuApi = (id: number) => {
15 - return defHttp.get<MenuVO>({ url: '/system/menu/get?id=' + id }) 17 + return request.get({ url: '/system/menu/get?id=' + id })
16 } 18 }
17 19
18 // 新增菜单 20 // 新增菜单
19 -export const createMenuApi = (params: MenuVO) => {  
20 - return defHttp.post({ url: '/system/menu/create', params }) 21 +export const createMenuApi = (data: MenuVO) => {
  22 + return request.post({ url: '/system/menu/create', data })
21 } 23 }
22 24
23 // 修改菜单 25 // 修改菜单
24 -export const updateMenuApi = (params: MenuVO) => {  
25 - return defHttp.put({ url: '/system/menu/update', params }) 26 +export const updateMenuApi = (data: MenuVO) => {
  27 + return request.put({ url: '/system/menu/update', data })
26 } 28 }
27 29
28 // 删除菜单 30 // 删除菜单
29 export const deleteMenuApi = (id: number) => { 31 export const deleteMenuApi = (id: number) => {
30 - return defHttp.delete({ url: '/system/menu/delete?id=' + id }) 32 + return request.delete({ url: '/system/menu/delete?id=' + id })
31 } 33 }
yudao-ui-admin-vue3/src/api/system/notice/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { NoticeVO } from './types' 2 import type { NoticeVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询公告列表 6 // 查询公告列表
5 -export const getNoticePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<NoticeVO>>({ url: '/system/notice/page', params }) 7 +export const getNoticePageApi = (params) => {
  8 + return request.get({ url: '/system/notice/page', params })
7 } 9 }
8 10
9 // 查询公告详情 11 // 查询公告详情
10 export const getNoticeApi = (id: number) => { 12 export const getNoticeApi = (id: number) => {
11 - return defHttp.get<NoticeVO>({ url: '/system/notice/get?id=' + id }) 13 + return request.get({ url: '/system/notice/get?id=' + id })
12 } 14 }
13 15
14 // 新增公告 16 // 新增公告
15 -export const createNoticeApi = (params: NoticeVO) => {  
16 - return defHttp.post({ url: '/system/notice/create', params }) 17 +export const createNoticeApi = (data: NoticeVO) => {
  18 + return request.post({ url: '/system/notice/create', data })
17 } 19 }
18 20
19 // 修改公告 21 // 修改公告
20 -export const updateNoticeApi = (params: NoticeVO) => {  
21 - return defHttp.put({ url: '/system/notice/update', params }) 22 +export const updateNoticeApi = (data: NoticeVO) => {
  23 + return request.put({ url: '/system/notice/update', data })
22 } 24 }
23 25
24 // 删除公告 26 // 删除公告
25 export const deleteNoticeApi = (id: number) => { 27 export const deleteNoticeApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/notice/delete?id=' + id }) 28 + return request.delete({ url: '/system/notice/delete?id=' + id })
27 } 29 }
yudao-ui-admin-vue3/src/api/system/oauth2/client.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import { OAuth2ClientVo } from './client.types' 2 import { OAuth2ClientVo } from './client.types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询 OAuth2列表 6 // 查询 OAuth2列表
5 -export const getOAuth2ClientPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<OAuth2ClientVo>>({ url: '/system/oauth2-client/page', params }) 7 +export const getOAuth2ClientPageApi = (params) => {
  8 + return request.get({ url: '/system/oauth2-client/page', params })
7 } 9 }
8 10
9 // 查询 OAuth2详情 11 // 查询 OAuth2详情
10 export const getOAuth2ClientApi = (id: number) => { 12 export const getOAuth2ClientApi = (id: number) => {
11 - return defHttp.get<OAuth2ClientVo>({ url: '/system/oauth2-client/get?id=' + id }) 13 + return request.get({ url: '/system/oauth2-client/get?id=' + id })
12 } 14 }
13 15
14 // 新增 OAuth2 16 // 新增 OAuth2
15 -export const createOAuth2ClientApi = (params: OAuth2ClientVo) => {  
16 - return defHttp.post({ url: '/system/oauth2-client/create', params }) 17 +export const createOAuth2ClientApi = (data: OAuth2ClientVo) => {
  18 + return request.post({ url: '/system/oauth2-client/create', data })
17 } 19 }
18 20
19 // 修改 OAuth2 21 // 修改 OAuth2
20 -export const updateOAuth2ClientApi = (params: OAuth2ClientVo) => {  
21 - return defHttp.put({ url: '/system/oauth2-client/update', params }) 22 +export const updateOAuth2ClientApi = (data: OAuth2ClientVo) => {
  23 + return request.put({ url: '/system/oauth2-client/update', data })
22 } 24 }
23 25
24 // 删除 OAuth2 26 // 删除 OAuth2
25 export const deleteOAuth2ClientApi = (id: number) => { 27 export const deleteOAuth2ClientApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/oauth2-client/delete?id=' + id }) 28 + return request.delete({ url: '/system/oauth2-client/delete?id=' + id })
27 } 29 }
yudao-ui-admin-vue3/src/api/system/oauth2/token.ts
1 -import { defHttp } from '@/config/axios'  
2 -import { OAuth2TokenVo } from './token.types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询 token列表 5 // 查询 token列表
5 -export const getAccessTokenPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<OAuth2TokenVo>>({ url: '/system/oauth2-token/page', params }) 6 +export const getAccessTokenPageApi = (params) => {
  7 + return request.get({ url: '/system/oauth2-token/page', params })
7 } 8 }
8 9
9 // 删除 token 10 // 删除 token
10 export const deleteAccessTokenApi = (accessToken: number) => { 11 export const deleteAccessTokenApi = (accessToken: number) => {
11 - return defHttp.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken }) 12 + return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken })
12 } 13 }
yudao-ui-admin-vue3/src/api/system/operatelog/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import type { OperateLogVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询操作日志列表 5 // 查询操作日志列表
5 -export const getOperateLogPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<OperateLogVO>>({ url: '/system/operate-log/page', params }) 6 +export const getOperateLogPageApi = (params) => {
  7 + return request.get({ url: '/system/operate-log/page', params })
7 } 8 }
8 // 导出操作日志 9 // 导出操作日志
9 export const exportOperateLogApi = (params) => { 10 export const exportOperateLogApi = (params) => {
10 - return defHttp.get({ url: '/system/operate-log/export', params, responseType: 'blob' }) 11 + return request.get({ url: '/system/operate-log/export', params, responseType: 'blob' })
11 } 12 }
yudao-ui-admin-vue3/src/api/system/post/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { PostVO } from './types' 2 import type { PostVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询岗位列表 6 // 查询岗位列表
5 -export const getPostPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<PostVO>>({ url: '/system/post/page', params }) 7 +export const getPostPageApi = async (params) => {
  8 + return await request.get({ url: '/system/post/page', params })
7 } 9 }
8 10
9 // 获取岗位精简信息列表 11 // 获取岗位精简信息列表
10 -export const listSimplePostsApi = () => {  
11 - return defHttp.get<PostVO[]>({ url: '/system/post/list-all-simple' }) 12 +export const listSimplePostsApi = async () => {
  13 + return await request.get({ url: '/system/post/list-all-simple' })
12 } 14 }
13 // 查询岗位详情 15 // 查询岗位详情
14 -export const getPostApi = (id: number) => {  
15 - return defHttp.get<PostVO>({ url: '/system/post/get?id=' + id }) 16 +export const getPostApi = async (id: number) => {
  17 + return await request.get({ url: '/system/post/get?id=' + id })
16 } 18 }
17 19
18 // 新增岗位 20 // 新增岗位
19 -export const createPostApi = (params: PostVO) => {  
20 - return defHttp.post({ url: '/system/post/create', params }) 21 +export const createPostApi = async (data: PostVO) => {
  22 + return await request.post({ url: '/system/post/create', data })
21 } 23 }
22 24
23 // 修改岗位 25 // 修改岗位
24 -export const updatePostApi = (params: PostVO) => {  
25 - return defHttp.put({ url: '/system/post/update', params }) 26 +export const updatePostApi = async (data: PostVO) => {
  27 + return await request.put({ url: '/system/post/update', data })
26 } 28 }
27 29
28 // 删除岗位 30 // 删除岗位
29 -export const deletePostApi = (id: number) => {  
30 - return defHttp.delete({ url: '/system/post/delete?id=' + id }) 31 +export const deletePostApi = async (id: number) => {
  32 + return await request.delete({ url: '/system/post/delete?id=' + id })
31 } 33 }
32 34
33 // 导出岗位 35 // 导出岗位
34 -export const exportPostApi = (params) => {  
35 - return defHttp.get({ url: '/system/post/export', params, responseType: 'blob' }) 36 +export const exportPostApi = async (params) => {
  37 + return await request.get({ url: '/system/post/export', params, responseType: 'blob' })
36 } 38 }
yudao-ui-admin-vue3/src/api/system/role/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { RoleVO } from './types' 2 import type { RoleVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询角色列表 6 // 查询角色列表
5 -export const getRolePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<RoleVO>>({ url: '/system/role/page', params }) 7 +export const getRolePageApi = (params) => {
  8 + return request.get({ url: '/system/role/page', params })
7 } 9 }
8 10
9 // 查询角色详情 11 // 查询角色详情
10 export const getRoleApi = (id: number) => { 12 export const getRoleApi = (id: number) => {
11 - return defHttp.get<RoleVO>({ url: '/system/role/get?id=' + id }) 13 + return request.get({ url: '/system/role/get?id=' + id })
12 } 14 }
13 15
14 // 新增角色 16 // 新增角色
15 -export const createRoleApi = (params: RoleVO) => {  
16 - return defHttp.post({ url: '/system/role/create', params }) 17 +export const createRoleApi = (data: RoleVO) => {
  18 + return request.post({ url: '/system/role/create', data })
17 } 19 }
18 20
19 // 修改角色 21 // 修改角色
20 -export const updateRoleApi = (params: RoleVO) => {  
21 - return defHttp.put({ url: '/system/role/update', params }) 22 +export const updateRoleApi = (data: RoleVO) => {
  23 + return request.put({ url: '/system/role/update', data })
22 } 24 }
23 25
24 // 修改角色状态 26 // 修改角色状态
25 -export const updateRoleStatusApi = (params: RoleVO) => {  
26 - return defHttp.put({ url: '/system/role/update-status', params }) 27 +export const updateRoleStatusApi = (data: RoleVO) => {
  28 + return request.put({ url: '/system/role/update-status', data })
27 } 29 }
28 30
29 // 删除角色 31 // 删除角色
30 export const deleteRoleApi = (id: number) => { 32 export const deleteRoleApi = (id: number) => {
31 - return defHttp.delete({ url: '/system/role/delete?id=' + id }) 33 + return request.delete({ url: '/system/role/delete?id=' + id })
32 } 34 }
yudao-ui-admin-vue3/src/api/system/sensitiveWord/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { SensitiveWordVO } from './types' 2 import type { SensitiveWordVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询敏感词列表 6 // 查询敏感词列表
5 -export const getSensitiveWordPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<SensitiveWordVO>>({ url: '/system/sensitive-word/page', params }) 7 +export const getSensitiveWordPageApi = (params) => {
  8 + return request.get({ url: '/system/sensitive-word/page', params })
7 } 9 }
8 10
9 // 查询敏感词详情 11 // 查询敏感词详情
10 export const getSensitiveWordApi = (id: number) => { 12 export const getSensitiveWordApi = (id: number) => {
11 - return defHttp.get<SensitiveWordVO>({ url: '/system/sensitive-word/get?id=' + id }) 13 + return request.get({ url: '/system/sensitive-word/get?id=' + id })
12 } 14 }
13 15
14 // 新增敏感词 16 // 新增敏感词
15 -export const createSensitiveWordApi = (params: SensitiveWordVO) => {  
16 - return defHttp.post({ url: '/system/sensitive-word/create', params }) 17 +export const createSensitiveWordApi = (data: SensitiveWordVO) => {
  18 + return request.post({ url: '/system/sensitive-word/create', data })
17 } 19 }
18 20
19 // 修改敏感词 21 // 修改敏感词
20 -export const updateSensitiveWordApi = (params: SensitiveWordVO) => {  
21 - return defHttp.put({ url: '/system/sensitive-word/update', params }) 22 +export const updateSensitiveWordApi = (data: SensitiveWordVO) => {
  23 + return request.put({ url: '/system/sensitive-word/update', data })
22 } 24 }
23 25
24 // 删除敏感词 26 // 删除敏感词
25 export const deleteSensitiveWordApi = (id: number) => { 27 export const deleteSensitiveWordApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/sensitive-word/delete?id=' + id }) 28 + return request.delete({ url: '/system/sensitive-word/delete?id=' + id })
27 } 29 }
28 30
29 // 导出敏感词 31 // 导出敏感词
30 export const exportSensitiveWordApi = (params) => { 32 export const exportSensitiveWordApi = (params) => {
31 - return defHttp.get({ url: '/system/sensitive-word/export', params, responseType: 'blob' }) 33 + return request.get({ url: '/system/sensitive-word/export', params, responseType: 'blob' })
32 } 34 }
33 35
34 // 获取所有敏感词的标签数组 36 // 获取所有敏感词的标签数组
35 export const getSensitiveWordTagsApi = () => { 37 export const getSensitiveWordTagsApi = () => {
36 - return defHttp.get<SensitiveWordVO>({ url: '/system/sensitive-word/get-tags' }) 38 + return request.get({ url: '/system/sensitive-word/get-tags' })
37 } 39 }
38 40
39 // 获得文本所包含的不合法的敏感词数组 41 // 获得文本所包含的不合法的敏感词数组
40 export const validateTextApi = (id: number) => { 42 export const validateTextApi = (id: number) => {
41 - return defHttp.get<SensitiveWordVO>({ url: '/system/sensitive-word/validate-text?' + id }) 43 + return request.get({ url: '/system/sensitive-word/validate-text?' + id })
42 } 44 }
yudao-ui-admin-vue3/src/api/system/sms/smsChannel/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { SmsChannelVO } from './types' 2 import type { SmsChannelVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询短信渠道列表 6 // 查询短信渠道列表
5 -export const getSmsChannelPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<SmsChannelVO>>({ url: '/system/sms-channel/page', params }) 7 +export const getSmsChannelPageApi = (params) => {
  8 + return request.get({ url: '/system/sms-channel/page', params })
7 } 9 }
8 10
9 // 获得短信渠道精简列表 11 // 获得短信渠道精简列表
10 export function getSimpleSmsChannels() { 12 export function getSimpleSmsChannels() {
11 - return defHttp.get({ url: '/system/sms-channel/list-all-simple' }) 13 + return request.get({ url: '/system/sms-channel/list-all-simple' })
12 } 14 }
13 15
14 // 查询短信渠道详情 16 // 查询短信渠道详情
15 export const getSmsChannelApi = (id: number) => { 17 export const getSmsChannelApi = (id: number) => {
16 - return defHttp.get<SmsChannelVO>({ url: '/system/sms-channel/get?id=' + id }) 18 + return request.get({ url: '/system/sms-channel/get?id=' + id })
17 } 19 }
18 20
19 // 新增短信渠道 21 // 新增短信渠道
20 -export const createSmsChannelApi = (params: SmsChannelVO) => {  
21 - return defHttp.post({ url: '/system/sms-channel/create', params }) 22 +export const createSmsChannelApi = (data: SmsChannelVO) => {
  23 + return request.post({ url: '/system/sms-channel/create', data })
22 } 24 }
23 25
24 // 修改短信渠道 26 // 修改短信渠道
25 -export const updateSmsChannelApi = (params: SmsChannelVO) => {  
26 - return defHttp.put({ url: '/system/sms-channel/update', params }) 27 +export const updateSmsChannelApi = (data: SmsChannelVO) => {
  28 + return request.put({ url: '/system/sms-channel/update', data })
27 } 29 }
28 30
29 // 删除短信渠道 31 // 删除短信渠道
30 export const deleteSmsChannelApi = (id: number) => { 32 export const deleteSmsChannelApi = (id: number) => {
31 - return defHttp.delete({ url: '/system/sms-channel/delete?id=' + id }) 33 + return request.delete({ url: '/system/sms-channel/delete?id=' + id })
32 } 34 }
yudao-ui-admin-vue3/src/api/system/sms/smsLog/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import type { SmsLogVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询短信日志列表 5 // 查询短信日志列表
5 -export const getSmsLogPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<SmsLogVO>>({ url: '/system/sms-log/page', params }) 6 +export const getSmsLogPageApi = (params) => {
  7 + return request.get({ url: '/system/sms-log/page', params })
7 } 8 }
8 9
9 // 导出短信日志 10 // 导出短信日志
10 export const exportSmsLogApi = (params) => { 11 export const exportSmsLogApi = (params) => {
11 - return defHttp.get({ url: '/system/sms-log/export', params, responseType: 'blob' }) 12 + return request.get({ url: '/system/sms-log/export', params, responseType: 'blob' })
12 } 13 }
yudao-ui-admin-vue3/src/api/system/sms/smsTemplate/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { SmsTemplateVO, SmsSendVO } from './types' 2 import type { SmsTemplateVO, SmsSendVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询短信模板列表 6 // 查询短信模板列表
5 -export const getSmsTemplatePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<SmsTemplateVO>>({ url: '/system/sms-template/page', params }) 7 +export const getSmsTemplatePageApi = (params) => {
  8 + return request.get({ url: '/system/sms-template/page', params })
7 } 9 }
8 10
9 // 查询短信模板详情 11 // 查询短信模板详情
10 export const getSmsTemplateApi = (id: number) => { 12 export const getSmsTemplateApi = (id: number) => {
11 - return defHttp.get<SmsTemplateVO>({ url: '/system/sms-template/get?id=' + id }) 13 + return request.get({ url: '/system/sms-template/get?id=' + id })
12 } 14 }
13 15
14 // 新增短信模板 16 // 新增短信模板
15 -export const createSmsTemplateApi = (params: SmsTemplateVO) => {  
16 - return defHttp.post({ url: '/system/sms-template/create', params }) 17 +export const createSmsTemplateApi = (data: SmsTemplateVO) => {
  18 + return request.post({ url: '/system/sms-template/create', data })
17 } 19 }
18 20
19 // 修改短信模板 21 // 修改短信模板
20 -export const updateSmsTemplateApi = (params: SmsTemplateVO) => {  
21 - return defHttp.put({ url: '/system/sms-template/update', params }) 22 +export const updateSmsTemplateApi = (data: SmsTemplateVO) => {
  23 + return request.put({ url: '/system/sms-template/update', data })
22 } 24 }
23 25
24 // 删除短信模板 26 // 删除短信模板
25 export const deleteSmsTemplateApi = (id: number) => { 27 export const deleteSmsTemplateApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/sms-template/delete?id=' + id }) 28 + return request.delete({ url: '/system/sms-template/delete?id=' + id })
27 } 29 }
28 30
29 // 发送短信 31 // 发送短信
30 -export function sendSms(params: SmsSendVO) {  
31 - return defHttp.post({ url: '/system/sms-template/send-sms', params }) 32 +export function sendSms(data: SmsSendVO) {
  33 + return request.post({ url: '/system/sms-template/send-sms', data })
32 } 34 }
33 35
34 // 导出短信模板 36 // 导出短信模板
35 export const exportPostApi = (params) => { 37 export const exportPostApi = (params) => {
36 - return defHttp.get({ url: '/system/sms-template/export-excel', params, responseType: 'blob' }) 38 + return request.get({ url: '/system/sms-template/export-excel', params, responseType: 'blob' })
37 } 39 }
yudao-ui-admin-vue3/src/api/system/tenant/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { TenantVO } from './types' 2 import type { TenantVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询租户列表 6 // 查询租户列表
5 -export const getTenantPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<TenantVO>>({ url: '/system/tenant/page', params }) 7 +export const getTenantPageApi = (params) => {
  8 + return request.get({ url: '/system/tenant/page', params })
7 } 9 }
8 10
9 // 查询租户详情 11 // 查询租户详情
10 export const getTenantApi = (id: number) => { 12 export const getTenantApi = (id: number) => {
11 - return defHttp.get<TenantVO>({ url: '/system/tenant/get?id=' + id }) 13 + return request.get({ url: '/system/tenant/get?id=' + id })
12 } 14 }
13 15
14 // 新增租户 16 // 新增租户
15 -export const createTenantApi = (params: TenantVO) => {  
16 - return defHttp.post({ url: '/system/tenant/create', params }) 17 +export const createTenantApi = (data: TenantVO) => {
  18 + return request.post({ url: '/system/tenant/create', data })
17 } 19 }
18 20
19 // 修改租户 21 // 修改租户
20 -export const updateTenantApi = (params: TenantVO) => {  
21 - return defHttp.put({ url: '/system/tenant/update', params }) 22 +export const updateTenantApi = (data: TenantVO) => {
  23 + return request.put({ url: '/system/tenant/update', data })
22 } 24 }
23 25
24 // 删除租户 26 // 删除租户
25 export const deleteTenantApi = (id: number) => { 27 export const deleteTenantApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/tenant/delete?id=' + id }) 28 + return request.delete({ url: '/system/tenant/delete?id=' + id })
27 } 29 }
28 30
29 // 导出租户 31 // 导出租户
30 export const exportTenantApi = (params) => { 32 export const exportTenantApi = (params) => {
31 - return defHttp.get({ url: '/system/tenant/export-excel', params, responseType: 'blob' }) 33 + return request.get({ url: '/system/tenant/export-excel', params, responseType: 'blob' })
32 } 34 }
yudao-ui-admin-vue3/src/api/system/tenantPackage/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { TenantPackageVO } from './types' 2 import type { TenantPackageVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询租户套餐列表 6 // 查询租户套餐列表
5 -export const getTenantPackageTypePageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<TenantPackageVO>>({ url: '/system/tenant-package/page', params }) 7 +export const getTenantPackageTypePageApi = (params) => {
  8 + return request.get({ url: '/system/tenant-package/page', params })
7 } 9 }
8 10
9 // 获得租户 11 // 获得租户
10 export const getTenantPackageApi = (id: number) => { 12 export const getTenantPackageApi = (id: number) => {
11 - return defHttp.get<TenantPackageVO>({ url: '/system/tenant-package/get?id=' + id }) 13 + return request.get({ url: '/system/tenant-package/get?id=' + id })
12 } 14 }
13 15
14 // 新增租户套餐 16 // 新增租户套餐
15 -export const createTenantPackageTypeApi = (params: TenantPackageVO) => {  
16 - return defHttp.post({ url: '/system/tenant-package/create', params }) 17 +export const createTenantPackageTypeApi = (data: TenantPackageVO) => {
  18 + return request.post({ url: '/system/tenant-package/create', data })
17 } 19 }
18 20
19 // 修改租户套餐 21 // 修改租户套餐
20 -export const updateTenantPackageTypeApi = (params: TenantPackageVO) => {  
21 - return defHttp.put({ url: '/system/tenant-package/update', params }) 22 +export const updateTenantPackageTypeApi = (data: TenantPackageVO) => {
  23 + return request.put({ url: '/system/tenant-package/update', data })
22 } 24 }
23 25
24 // 删除租户套餐 26 // 删除租户套餐
25 export const deleteTenantPackageTypeApi = (id: number) => { 27 export const deleteTenantPackageTypeApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/tenant-package/delete?id=' + id }) 28 + return request.delete({ url: '/system/tenant-package/delete?id=' + id })
27 } 29 }
28 // // 获取租户套餐精简信息列表 30 // // 获取租户套餐精简信息列表
29 export const getTenantPackageList = () => { 31 export const getTenantPackageList = () => {
30 - return defHttp.get({  
31 - url: '/system/tenant-package/get-simple-list'  
32 - }) 32 + return request.get({ url: '/system/tenant-package/get-simple-list' })
33 } 33 }
yudao-ui-admin-vue3/src/api/system/user/index.ts
1 -import { defHttp } from '@/config/axios' 1 +import { useAxios } from '@/hooks/web/useAxios'
2 import type { UserVO } from './types' 2 import type { UserVO } from './types'
3 3
  4 +const request = useAxios()
  5 +
4 // 查询用户管理列表 6 // 查询用户管理列表
5 -export const getUserPageApi = ({ params }) => {  
6 - return defHttp.get<PageResult<UserVO>>({ url: '/system/user/page', params }) 7 +export const getUserPageApi = (params) => {
  8 + return request.get({ url: '/system/user/page', params })
7 } 9 }
8 10
9 // 查询用户详情 11 // 查询用户详情
10 export const getUserApi = (id: number) => { 12 export const getUserApi = (id: number) => {
11 - return defHttp.get<UserVO>({ url: '/system/user/get?id=' + id }) 13 + return request.get({ url: '/system/user/get?id=' + id })
12 } 14 }
13 15
14 // 新增用户 16 // 新增用户
15 -export const createUserApi = (params: UserVO) => {  
16 - return defHttp.post({ url: '/system/user/create', params }) 17 +export const createUserApi = (data: UserVO) => {
  18 + return request.post({ url: '/system/user/create', data })
17 } 19 }
18 20
19 // 修改用户 21 // 修改用户
20 -export const updateUserApi = (params: UserVO) => {  
21 - return defHttp.put({ url: '/system/user/update', params }) 22 +export const updateUserApi = (data: UserVO) => {
  23 + return request.put({ url: '/system/user/update', data })
22 } 24 }
23 25
24 // 删除用户 26 // 删除用户
25 export const deleteUserApi = (id: number) => { 27 export const deleteUserApi = (id: number) => {
26 - return defHttp.delete({ url: '/system/user/delete?id=' + id }) 28 + return request.delete({ url: '/system/user/delete?id=' + id })
27 } 29 }
28 30
29 // 导出用户 31 // 导出用户
30 export const exportUserApi = (params) => { 32 export const exportUserApi = (params) => {
31 - return defHttp.get({ url: '/system/user/export', params, responseType: 'blob' }) 33 + return request.get({ url: '/system/user/export', params, responseType: 'blob' })
32 } 34 }
33 35
34 // 下载用户导入模板 36 // 下载用户导入模板
35 export const importUserTemplateApi = () => { 37 export const importUserTemplateApi = () => {
36 - return defHttp.get({ url: '/system/user/get-import-template', responseType: 'blob' }) 38 + return request.get({ url: '/system/user/get-import-template', responseType: 'blob' })
37 } 39 }
38 40
39 // 用户密码重置 41 // 用户密码重置
40 -export const resetUserPwdApi = (userId: number, password: number) => { 42 +export const resetUserPwdApi = (id: number, password: string) => {
41 const data = { 43 const data = {
42 - userId, 44 + id,
43 password 45 password
44 } 46 }
45 - return defHttp.put({  
46 - url: '/system/user/resetPwd',  
47 - data: data  
48 - }) 47 + return request.put({ url: '/system/user/update-password', data: data })
49 } 48 }
50 49
51 // 用户状态修改 50 // 用户状态修改
@@ -54,15 +53,5 @@ export const updateUserStatusApi = (id: number, status: number) =&gt; { @@ -54,15 +53,5 @@ export const updateUserStatusApi = (id: number, status: number) =&gt; {
54 id, 53 id,
55 status 54 status
56 } 55 }
57 - return defHttp.put({ url: '/system/user/update-status', data: data })  
58 -}  
59 -  
60 -// 查询授权角色  
61 -export const getAuthRoleApi = (userId: string) => {  
62 - return defHttp.get({ url: '/system/user/authRole/' + userId })  
63 -}  
64 -  
65 -// 保存授权角色  
66 -export const updateAuthRoleApi = (data: any) => {  
67 - return defHttp.put({ url: '/system/user/authRole', params: data }) 56 + return request.put({ url: '/system/user/update-status', data: data })
68 } 57 }
yudao-ui-admin-vue3/src/api/system/user/profile/index.ts
1 -import { defHttp } from '@/config/axios'  
2 -import { ProfileVO } from './types' 1 +import { useAxios } from '@/hooks/web/useAxios'
  2 +
  3 +const request = useAxios()
3 4
4 // 查询用户个人信息 5 // 查询用户个人信息
5 export const getUserProfileApi = () => { 6 export const getUserProfileApi = () => {
6 - return defHttp.get<ProfileVO>({ url: '/system/user/profile/get' }) 7 + return request.get({ url: '/system/user/profile/get' })
7 } 8 }
8 9
9 // 修改用户个人信息 10 // 修改用户个人信息
10 -export const updateUserProfileApi = ({ params }) => {  
11 - return defHttp.put({ url: '/system/user/profile/update', params }) 11 +export const updateUserProfileApi = (params) => {
  12 + return request.put({ url: '/system/user/profile/update', params })
12 } 13 }
13 14
14 // 用户密码重置 15 // 用户密码重置
15 export const updateUserPwdApi = (oldPassword: string, newPassword: string) => { 16 export const updateUserPwdApi = (oldPassword: string, newPassword: string) => {
16 - return defHttp.put({ 17 + return request.put({
17 url: '/system/user/profile/update-password', 18 url: '/system/user/profile/update-password',
18 params: { 19 params: {
19 oldPassword: oldPassword, 20 oldPassword: oldPassword,
@@ -24,5 +25,5 @@ export const updateUserPwdApi = (oldPassword: string, newPassword: string) =&gt; { @@ -24,5 +25,5 @@ export const updateUserPwdApi = (oldPassword: string, newPassword: string) =&gt; {
24 25
25 // 用户头像上传 26 // 用户头像上传
26 export const uploadAvatarApi = (data) => { 27 export const uploadAvatarApi = (data) => {
27 - return defHttp.put({ url: '/system/user/profile/update-avatar', data: data }) 28 + return request.put({ url: '/system/user/profile/update-avatar', data: data })
28 } 29 }
yudao-ui-admin-vue3/src/assets/imgs/avatar.jpg 0 → 100644

6.12 KB

yudao-ui-admin-vue3/src/assets/svgs/icon.svg
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>  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +<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>
3 \ No newline at end of file 3 \ No newline at end of file
yudao-ui-admin-vue3/src/assets/svgs/login-box-bg.svg
1 -<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 700 700" xml:space="preserve"><style>.st0{fill:#e5e6eb}.st1{fill:#fff}.st2{fill:#84a9ff}.st3{fill:#050f64}.st4{fill:#155bcd}.st5{fill:#ffbd00}.st6{fill:#ff654f}.st9{fill:#f5bdc8}.st10{fill:#ea8096}.st11{opacity:0}.st13{fill:#dca000}</style><path class="st0" d="M101.8 176.7c21.4-19.8 48.8-33.2 77.8-37.2 92.4-12.6 158.2 78.1 240.3 104.9 40.8 13.3 85.4 12.6 125.4 28 68.5 26.2 131.4 117.8 101 191.6-23.7 57.5-79.6 71.8-134.6 54-33.5-10.9-64.1-29.4-97.6-40.5-38.1-12.6-78.7-15.1-118.9-16.7s-80.6-2.4-119.6-12-77-28.9-101.2-60.9C40.8 343.4 48 260.8 73.1 213.7c7.4-13.9 17.2-26.3 28.7-37z"/><path class="st1" d="M82 257.1c5.7-23.2 18.9-44.7 37.3-60.4l1.7-1.5 1.8-1.4 1.8-1.4 1.8-1.3c.6-.4 1.2-.9 1.8-1.3l1.9-1.3c.6-.4 1.2-.9 1.9-1.3l1.9-1.2c5.1-3.2 10.5-6 16.1-8.4 11.1-4.7 23-7.8 35.1-9 12.1-1.1 24.3-.5 36.1 1.5 5.9 1 11.8 2.4 17.6 4 .7.2 1.5.4 2.2.6l2.2.7 2.2.7 2.1.7 2.1.7 2.1.8 2.1.8 2.1.8c5.6 2.2 11.1 4.6 16.5 7.2 5.4 2.6 10.7 5.4 15.9 8.3 10.4 5.9 20.6 12.2 30.5 18.8-10.4-5.9-20.7-11.8-31.4-17.2-5.3-2.7-10.7-5.3-16.1-7.7-5.4-2.4-10.9-4.7-16.5-6.7l-2.1-.8-2.1-.7-2.1-.7-2.1-.7-2.1-.7-2.1-.6-2.1-.6-2.1-.6c-5.7-1.5-11.5-2.8-17.3-3.7-11.6-1.9-23.5-2.5-35.2-1.3-11.7 1.1-23.2 4-34.1 8.5-5.4 2.2-10.7 4.9-15.8 7.9l-1.9 1.1c-.6.4-1.2.8-1.9 1.2l-1.8 1.2c-.6.4-1.2.8-1.8 1.3l-1.8 1.3-1.8 1.3-1.8 1.3-1.7 1.4c-18.2 15.2-32 35.7-39.1 58.4z"/><path class="st2" d="M183.1 543.2c-.3 1.2-.5 1.8-.5 1.8-.7-.5-1.4-.9-2.1-1.4-120.8-82.8-72.6-232.2-72.6-232.2 115.7 67.3 80.1 213.8 75.2 231.8z"/><path class="st3" d="M183.1 543.2c-.3 1.2-.5 1.8-.5 1.8-.7-.5-1.4-.9-2.1-1.4-10.1-29.9-20.1-59.8-29.8-89.8-5-15.5-10-31.1-14.8-46.7l-3.6-11.7-3.5-11.7c-1.2-3.9-2.2-7.8-3.4-11.8-.6-2-1.1-3.9-1.6-5.9l-1.6-5.9 1.6 5.9c.5 2 1.1 3.9 1.7 5.9 1.2 3.9 2.3 7.8 3.5 11.7l3.6 11.7 3.7 11.7c5 15.5 10.2 31 15.4 46.5 10.4 30 20.8 59.9 31.4 89.7zm-45.2-158.3c-.1 0-.2 0-.4-.1-.3-.1-.4-.5-.2-.8 3.7-7.2 6-15.3 6.7-23.4 0-.3.3-.5.6-.5s.5.3.5.6c-.7 8.2-3.1 16.5-6.9 23.8 0 .3-.2.4-.3.4zm16.1 45.6h-.3c-.3-.1-.4-.5-.3-.7 3.4-8.3 7.6-16.4 12.3-24.1.2-.3.5-.3.8-.2.3.2.3.5.2.8-4.7 7.6-8.8 15.6-12.2 23.9-.1.1-.3.3-.5.3zm-16.6 9.8h-.3c-9.5-3.9-18.3-9.3-26.1-16.1-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1 7.7 6.7 16.3 12 25.7 15.9.3.1.4.5.3.7 0 .2-.1.3-.3.4zm-11.5-49.8c-.2.1-.4.1-.6-.1l-19.2-15c-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1l19.2 15c.2.2.3.6.1.8 0 .1-.1.2-.2.2zm44.8 87.9h-.3c-.3-.1-.4-.5-.3-.7l10.1-23.5c.1-.3.5-.4.7-.3.3.1.4.5.3.7l-10.1 23.5c0 .1-.2.3-.4.3zm-19.1 3.2h-.3l-24.3-10c-.3-.1-.4-.5-.3-.7.1-.3.5-.4.7-.3l24.3 10c.3.1.4.5.3.7-.1.1-.3.3-.4.3z"/><path class="st4" d="M182.3 543.2c.3 1.2.4 1.9.4 1.9-.8-.1-1.7-.2-2.5-.3C35 525 11 369.8 11 369.8c133.5 8.2 167.5 155.1 171.3 173.4z"/><path class="st1" d="M182.3 543.2c.3 1.2.4 1.9.4 1.9-.8-.1-1.7-.2-2.5-.3-22.5-22.1-44.8-44.4-66.9-66.8-11.5-11.6-22.9-23.3-34.2-35.1l-8.5-8.8-8.4-8.9c-2.8-3-5.5-6-8.3-9-1.4-1.5-2.7-3-4.1-4.6l-4-4.6 4.1 4.5c1.4 1.5 2.7 3 4.1 4.5 2.8 3 5.6 6 8.4 8.9l8.5 8.8 8.6 8.7c11.5 11.6 23 23.1 34.7 34.6 22.5 22.2 45.2 44.3 68.1 66.2zM70.7 422.1c-.1.1-.2.1-.3.1-.3 0-.6-.3-.6-.6.1-8.1-1.5-16.4-4.5-23.9-.1-.3 0-.6.3-.7.3-.1.6 0 .7.3 3 7.7 4.6 16.1 4.6 24.4 0 .1-.1.3-.2.4zm34.9 33.4c-.1.1-.2.1-.3.1-.3 0-.6-.2-.6-.5-.7-9-.6-18.1.2-27 0-.3.3-.5.6-.5s.5.3.5.6c-.8 8.9-.9 17.9-.2 26.8.1.2 0 .4-.2.5zm-10.4 16.2c-.1.1-.2.1-.3.1-10.3.8-20.5-.1-30.5-2.7-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4 9.9 2.5 20 3.4 30.1 2.6.3 0 .6.2.6.5 0 .4-.1.5-.2.6zm-32.6-39.3c-.1.1-.3.2-.5.2l-23.9-4.8c-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4l23.9 4.8c.3.1.5.4.4.7-.1.1-.1.2-.2.2zm79.5 58.4c-.1.1-.2.1-.3.1-.3 0-.6-.2-.6-.5l-1.5-25.5c0-.3.2-.6.5-.6s.6.2.6.5l1.5 25.5c0 .2-.1.4-.2.5zm-15.7 11.5c-.1.1-.2.1-.3.1l-26.2 2c-.3 0-.6-.2-.6-.5s.2-.6.5-.6l26.2-2c.3 0 .6.2.6.5 0 .2-.1.4-.2.5z"/><path class="st5" d="M259.6 503.3c1.2.5 1.8.7 1.8.7-.5.7-1.1 1.3-1.7 1.9C164 616.8 20.9 552.3 20.9 552.3c79.7-107.4 221.4-55.9 238.7-49z"/><path class="st1" d="M259.6 503.3c1.2.5 1.8.7 1.8.7-.5.7-1.1 1.3-1.7 1.9-30.8 6.8-61.6 13.3-92.5 19.7-16 3.3-32 6.5-48 9.6l-12 2.3-12 2.2c-4 .7-8 1.4-12.1 2-2 .4-4 .6-6 .9l-6.1.9 6-1c2-.3 4-.6 6-1 4-.7 8-1.4 12-2.2l12-2.3 12-2.4c16-3.3 31.9-6.7 47.9-10.2 31-6.9 61.9-13.9 92.7-21.1zM97.3 530.8c0 .1 0 .2-.1.3-.2.3-.5.3-.8.2-6.8-4.5-14.6-7.7-22.5-9.3-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4 8.1 1.6 16 4.9 22.9 9.5.1 0 .1.2.2.4zm47-11.1c0 .1 0 .2-.1.3-.2.3-.5.4-.8.2-7.9-4.3-15.5-9.4-22.5-14.9-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1 7 5.5 14.6 10.5 22.4 14.8.2.1.3.3.3.5zm7.9 17.6c0 .1 0 .2-.1.3-4.9 9-11.3 17.2-18.8 24.1-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8 7.5-6.9 13.7-14.9 18.6-23.8.2-.3.5-.4.8-.2.2.1.3.3.3.4zm-50.7 5.9c.1.2 0 .4-.1.6l-17 17.5c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8l17-17.5c.2-.2.6-.2.8 0 .1 0 .1.1.1.2zm92.3-34.8c0 .1 0 .2-.1.3-.2.3-.5.4-.8.2l-22.2-12.7c-.3-.2-.4-.5-.2-.8.2-.3.5-.4.8-.2l22.2 12.7c.2.2.3.3.3.5zm1.1 19.4c0 .1 0 .2-.1.3l-12.7 23.1c-.2.3-.5.4-.8.2-.3-.2-.4-.5-.2-.8l12.7-23.1c.2-.3.5-.4.8-.2.1.2.3.3.3.5z"/><path class="st2" d="M608.8 430.3c-1 .2-2.4-.3-4.4-1.4-3.2-1.9-8.3-4.9-10.2-6.1 3 6.3 5.8 12.7 8.3 19.2 4.5-1 7.9-.1 10.1 1.4 2.2 1.5 3.3 3.6 3.3 4.6-.1 2-1.8 2.4-4.9.3-1.6-1.1-3.7-2.6-5.5-3.9-1.3-.9-2.3-1.7-2.8-2 .8 2 1.5 4 2.2 6h.2c1.3.2 3.1 3.1 3.9 4.1 1.7 2.3 3 4.9 3.2 7.8.1 1.2-.1 2.6-1.2 3.2-1.2.6-2.6-.3-3.5-1.3-2.5-2.8-4-6.5-4.1-10.2 0-1-.1-3.3 1.2-3.5-.8-2-1.5-3.9-2.3-5.9-.1.6-.4 1.9-.7 3.4-.5 2.1-1.1 4.7-1.7 6.4-1.1 3.5-2.7 4.1-4 2.8-.7-.7-1.1-2.7-.3-5.2.8-2.4 2.6-5.3 6.6-7.7-2.7-6.4-5.6-12.7-8.8-18.9-.1.8-.3 2.2-.5 3.7-.3 2.6-.9 5.7-1.4 7.8-.5 2.1-1.2 3.4-2 4-.8.6-1.7.4-2.5-.3-.9-.7-1.6-3.1-.9-6.2.6-2.9 2.6-6.5 7-9.6-3.5-6.6-7.2-13.1-11.2-19.4v.3c0 1 0 2.5-.1 4.1-.1 1.6-.2 3.4-.3 5-.1 1.7-.4 3.3-.5 4.6-.8 5.3-3 6.6-5.2 5-1.2-.8-2.1-3.7-1.7-7.4.2-1.9.9-4 2.2-6.2 1.1-2 2.8-4.2 5.2-6.3-3.8-5.8-7.8-11.5-12-17 .1 1.2.2 2.8.2 4.6.1 1.8.1 3.9.1 5.8v2.8c0 .9-.1 1.8-.1 2.5-.4 6.1-2.8 7.8-5.5 6.2-.7-.4-1.4-1.4-1.9-2.8s-.8-3.3-.7-5.4c.1-2.2.7-4.6 1.9-7.3 1.1-2.4 2.8-5 5.2-7.6-4.2-5.4-8.5-10.5-13.1-15.5l2-1.8c4.5 5.2 8.8 10.5 12.9 16 3.1-1.6 6.1-2.5 8.8-2.7 3-.3 5.6.1 7.8.9s4 1.9 5.3 3.1c1.2 1.2 2 2.4 2.2 3.3.7 3.5-2 4.7-8 2.5-3.1-1.2-7.3-2.8-10.7-4.2-1.7-.6-3.3-1.2-4.4-1.6 4.1 5.6 8 11.5 11.6 17.4 2.9-1.2 5.6-1.7 8-1.8 2.6 0 4.8.5 6.7 1.4 3.8 1.7 5.8 4.5 6 6 .3 3.1-2 4-7.1 1.6-2.6-1.3-6.1-3-9-4.4-1.4-.7-2.8-1.3-3.7-1.8-.1 0-.1-.1-.2-.1 3.9 6.4 7.5 13 10.8 19.8 5.1-1.6 9.2-.9 12 .7 2.8 1.6 4.3 4 4.4 5.2-.7 1.1-1.2 1.8-2.2 2zM552.1 373.7c-.5 1.1-.8 1.7-.8 1.7l-1.8-1.8c-105.3-101.8-32.8-241.1-32.8-241.1 102.7 85.7 43.2 224.2 35.4 241.2z"/><path class="st1" d="M552.1 373.7c-.5 1.1-.8 1.7-.8 1.7l-1.8-1.8c-5-31.1-9.8-62.3-14.4-93.5-2.4-16.1-4.7-32.3-6.8-48.5l-1.6-12.1-1.5-12.2c-.5-4.1-.9-8.1-1.4-12.2-.2-2-.4-4.1-.6-6.1l-.5-6.1.6 6.1c.2 2 .4 4.1.7 6.1.5 4 1 8.1 1.5 12.1l1.6 12.1 1.7 12.1c2.4 16.1 4.9 32.3 7.5 48.4 5.1 31.4 10.3 62.7 15.8 93.9zM533.9 210c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.1-.8 4.9-6.5 8.5-14.1 10.6-21.9.1-.3.4-.5.7-.4.3.1.5.4.4.7-2.1 8-5.8 15.7-10.7 22.3-.3.1-.5.2-.6.2zm8.3 47.6c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.2-.8 4.8-7.6 10.2-14.9 16.2-21.7.2-.2.6-.3.8-.1.2.2.3.6.1.8-5.9 6.7-11.3 13.9-16.1 21.5-.1.3-.3.4-.5.4zm-18 6.9c-.1 0-.2 0-.3-.1-8.7-5.4-16.5-12.2-23-20.2-.2-.2-.2-.6.1-.8.2-.2.6-.2.8.1 6.4 7.9 14.1 14.6 22.7 19.9.3.2.3.5.2.8-.2.2-.4.3-.5.3zm-3-51c-.2 0-.4 0-.5-.2l-16.5-18c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l16.5 18c.2.2.2.6 0 .8-.1.2-.2.2-.3.2zm29.5 94.2c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.2-.8l13.9-21.5c.2-.3.5-.3.8-.2.3.2.3.5.2.8l-13.9 21.5c-.1.2-.3.3-.5.3zm-19.5-.1c-.1 0-.2 0-.3-.1l-22.3-13.9c-.3-.2-.3-.5-.2-.8.2-.3.5-.3.8-.2l22.3 13.9c.3.2.3.5.2.8-.1.2-.3.3-.5.3z"/><path class="st4" d="M526.6 382.8c-1 .7-1.6 1-1.6 1-.2-.8-.4-1.6-.6-2.5-35-142.2 100.5-221.5 100.5-221.5 41.5 127.2-82.7 212.8-98.3 223z"/><path class="st3" d="M526.6 382.8c-1 .7-1.6 1-1.6 1-.2-.8-.4-1.6-.6-2.5 12.3-29 24.8-58 37.5-86.8 6.6-14.9 13.3-29.8 20-44.7l5.1-11.1 5.2-11.1c1.7-3.7 3.6-7.3 5.3-11 .9-1.8 1.8-3.6 2.7-5.5l2.8-5.4-2.7 5.5c-.9 1.8-1.8 3.6-2.7 5.5-1.7 3.7-3.5 7.4-5.2 11.1l-5.1 11.1-5 11.2c-6.6 14.9-13 29.9-19.4 44.9-12.2 29.2-24.3 58.5-36.3 87.8zm71.6-148.3c-.1-.1-.2-.2-.2-.3-.1-.3 0-.6.3-.7 7.6-2.9 14.7-7.4 20.6-13 .2-.2.6-.2.8 0 .2.2.2.6 0 .8-6 5.7-13.3 10.2-21 13.2-.1.1-.3.1-.5 0zM580 279.3c-.1-.1-.2-.1-.2-.2-.1-.3 0-.6.3-.8 8.1-3.9 16.6-7.2 25.2-9.7.3-.1.6.1.7.4.1.3-.1.6-.4.7-8.6 2.5-17 5.8-25 9.7-.3 0-.5 0-.6-.1zm-19-3.8c-.1-.1-.2-.1-.2-.3-4.5-9.3-7.4-19.1-8.7-29.3 0-.3.2-.6.5-.6s.6.2.6.5c1.3 10.1 4.2 19.8 8.6 29 .1.3 0 .6-.3.8-.1 0-.3 0-.5-.1zm24.6-44.7c-.2-.1-.3-.2-.4-.4l-4.4-24c-.1-.3.1-.6.5-.7.3-.1.6.1.7.5l4.4 24c.1.3-.1.6-.5.7-.1-.1-.2-.1-.3-.1zm-25.1 95.4c-.1-.1-.2-.1-.2-.2-.1-.3 0-.6.3-.8l23.2-10.8c.3-.1.6 0 .8.3.1.3 0 .6-.3.8l-23.2 10.8c-.2 0-.4 0-.6-.1zm-16.4-10.4c-.1-.1-.2-.1-.2-.2l-11.5-23.7c-.1-.3 0-.6.3-.8.3-.1.6 0 .8.3l11.5 23.7c.1.3 0 .6-.3.8-.2 0-.5 0-.6-.1z"/><path class="st5" d="M482.2 415.1c-1.2 0-1.9-.1-1.9-.1l.9-2.4C532.4 275.4 689 286.2 689 286.2c-37.4 128.5-188.2 129.3-206.8 128.9z"/><path class="st1" d="M482.2 415.1c-1.2 0-1.9-.1-1.9-.1l.9-2.4c26.5-17 53.2-33.9 79.9-50.6 13.9-8.6 27.8-17.2 41.7-25.6l10.5-6.3 10.5-6.2c3.5-2.1 7.1-4.1 10.6-6.1 1.8-1 3.6-2 5.3-3l5.4-2.9-5.3 3c-1.8 1-3.6 2-5.3 3-3.5 2.1-7 4.1-10.5 6.2l-10.5 6.4-10.4 6.4c-13.8 8.6-27.6 17.4-41.4 26.2-26.6 17.2-53.1 34.5-79.5 52zM624.9 333c0-.1-.1-.2 0-.4.1-.3.4-.5.7-.4 7.9 1.8 16.3 2.2 24.3.9.3 0 .6.2.7.5 0 .3-.2.6-.5.7-8.2 1.3-16.7 1-24.8-.9l-.4-.4zm-40.3 26.7c0-.1-.1-.2 0-.3 0-.3.3-.5.6-.5 8.9 1.3 17.8 3.4 26.3 6.2.3.1.5.4.4.7-.1.3-.4.5-.7.4-8.5-2.7-17.3-4.8-26.1-6.1-.3-.1-.4-.3-.5-.4zm-13.5-13.8c-.1-.1-.1-.2-.1-.3 1.5-10.2 4.6-20 9.3-29.2.1-.3.5-.4.8-.2.3.1.4.5.2.8-4.6 9.1-7.7 18.7-9.2 28.8 0 .3-.3.5-.6.5-.2-.2-.4-.3-.4-.4zm45.5-23.1c-.1-.2-.1-.4-.1-.6l9.9-22.3c.1-.3.5-.4.8-.3.3.1.4.5.3.8l-9.9 22.3c-.1.3-.5.4-.8.3l-.2-.2zm-74.5 64.6c0-.1-.1-.2 0-.3.1-.3.3-.5.7-.5l25.2 4.2c.3.1.5.3.5.7-.1.3-.3.5-.7.5l-25.2-4.2c-.3-.1-.4-.2-.5-.4zm-7.7-17.8c0-.1-.1-.2 0-.3l3.9-26c0-.3.3-.5.6-.5s.5.3.5.6l-3.9 26c0 .3-.3.5-.6.5s-.4-.2-.5-.3z"/><path class="st2" d="M445 229c-.1 1 .4 2.4 1.6 4.3 2.1 3.1 5.4 8 6.6 9.9-6.4-2.7-13-5.1-19.6-7.3.8-4.5-.3-7.9-1.9-10-1.6-2.2-3.7-3.1-4.8-3-2 .2-2.3 1.9 0 4.9 1.1 1.5 2.8 3.5 4.2 5.3 1 1.2 1.8 2.2 2.2 2.7-2-.7-4.1-1.3-6.1-1.9v-.2c-.3-1.3-3.3-3-4.3-3.7-2.4-1.6-5.1-2.7-7.9-2.8-1.2 0-2.6.3-3.1 1.4-.5 1.2.5 2.6 1.5 3.4 2.9 2.4 6.7 3.6 10.4 3.5 1 0 3.3 0 3.5-1.4 2 .7 4 1.3 6 2-.6.2-1.9.5-3.4.9-2.1.6-4.6 1.4-6.3 2-3.4 1.3-4 2.9-2.6 4.2.7.6 2.8 1 5.2 0 2.4-.9 5.2-2.9 7.3-7 6.6 2.3 13 4.9 19.3 7.7-.8.1-2.2.4-3.7.7-2.5.5-5.6 1.2-7.7 1.8-2.1.6-3.3 1.4-3.9 2.2-.5.8-.4 1.7.4 2.5s3.2 1.4 6.2.5c2.9-.8 6.3-2.9 9.3-7.5 6.8 3.1 13.5 6.5 20 10.2h-.3c-1 .1-2.5.2-4.1.4-1.6.2-3.3.4-5 .6-1.7.2-3.3.5-4.6.8-5.2 1.1-6.4 3.3-4.7 5.5.9 1.1 3.8 1.9 7.5 1.3 1.9-.3 4-1.1 6.1-2.5 2-1.3 4-3 6-5.5 6 3.4 11.9 7.1 17.7 11.1h-4.6c-1.8 0-3.9.1-5.8.2-1 .1-1.9.1-2.8.2-.9.1-1.7.2-2.5.3-6.1.8-7.6 3.2-5.9 5.8.4.7 1.5 1.3 2.9 1.7 1.5.4 3.3.7 5.5.4 2.2-.3 4.6-.9 7.2-2.3 2.3-1.2 4.8-3 7.3-5.6 5.6 3.9 11 8 16.2 12.3l1.7-2.1c-5.4-4.2-11-8.2-16.7-12 1.4-3.2 2.1-6.2 2.2-8.9.1-3-.4-5.6-1.3-7.7-.9-2.1-2.1-3.9-3.4-5.1-1.3-1.2-2.5-1.9-3.4-2-3.5-.5-4.6 2.2-2 8.1 1.4 3 3.2 7.1 4.8 10.5.7 1.7 1.4 3.2 1.9 4.3-5.9-3.8-11.9-7.4-18-10.7 1-3 1.4-5.7 1.3-8.1-.1-2.6-.8-4.8-1.7-6.6-1.9-3.7-4.8-5.5-6.3-5.6-3.1-.2-3.9 2.3-1.2 7.2 1.4 2.5 3.3 5.9 4.9 8.8.8 1.4 1.5 2.7 2 3.6 0 .1.1.1.1.2-6.6-3.5-13.4-6.8-20.3-9.7 1.3-5.2.4-9.2-1.3-11.9-1.8-2.8-4.2-4.1-5.4-4.1-1.6.3-2.3.8-2.4 1.8zM100.2 255.8c1-.1 2.4.5 4.3 1.8 3 2.2 7.8 5.7 9.6 7-2.4-6.5-4.6-13.2-6.4-19.9-4.6.6-7.9-.6-9.9-2.3-2.1-1.7-3-3.9-2.8-4.9.3-2 2-2.2 4.9.2 1.5 1.2 3.4 3 5.1 4.4 1.2 1 2.2 1.9 2.6 2.3-.6-2.1-1.1-4.1-1.6-6.2h-.2c-1.3-.3-2.8-3.4-3.5-4.5-1.5-2.4-2.5-5.2-2.5-8 0-1.2.4-2.6 1.5-3 1.3-.5 2.6.6 3.4 1.6 2.3 3 3.3 6.8 3.1 10.5-.1 1-.2 3.3-1.5 3.4.6 2 1.2 4.1 1.8 6.1.2-.6.6-1.9 1-3.4.7-2.1 1.6-4.5 2.3-6.2 1.4-3.4 3.1-3.9 4.3-2.4.6.7.8 2.8-.2 5.2-1 2.4-3.1 5-7.3 7 2 6.6 4.4 13.2 6.9 19.6.2-.8.5-2.2.8-3.7.6-2.5 1.4-5.6 2.1-7.6.7-2.1 1.5-3.3 2.4-3.8.9-.5 1.7-.3 2.5.5s1.2 3.3.3 6.2c-.9 2.8-3.2 6.2-7.8 8.9 2.8 6.9 5.9 13.8 9.3 20.4v-.3c.1-1 .3-2.4.5-4s.5-3.3.8-5c.3-1.7.7-3.3 1-4.6 1.3-5.2 3.6-6.3 5.7-4.5 1.1.9 1.8 3.9 1 7.5-.4 1.8-1.3 3.9-2.8 6-1.3 1.9-3.2 3.9-5.8 5.8 3.2 6.2 6.6 12.2 10.3 18.1 0-1.2.1-2.8.2-4.6.1-1.8.3-3.9.5-5.8.1-1 .2-1.9.3-2.8.1-.9.3-1.7.4-2.5 1-6 3.5-7.5 6.1-5.6.6.5 1.2 1.5 1.6 3 .3 1.5.5 3.3.2 5.5s-1.1 4.5-2.6 7.1c-1.3 2.3-3.2 4.7-5.9 7 3.6 5.7 7.5 11.3 11.6 16.7l-2.2 1.6c-4-5.6-7.8-11.3-11.3-17.2-3.3 1.3-6.3 1.9-9 1.9-3 0-5.6-.6-7.7-1.6-2.1-1-3.8-2.3-4.9-3.6-1.1-1.3-1.8-2.6-1.8-3.4-.3-3.5 2.4-4.5 8.2-1.7 2.9 1.5 7 3.5 10.3 5.2 1.7.8 3.1 1.5 4.2 2-3.6-6-6.9-12.2-9.9-18.5-3 .9-5.7 1.2-8.1 1-2.6-.2-4.7-1-6.5-2-3.6-2-5.3-5-5.4-6.6 0-3.1 2.4-3.8 7.2-.9 2.4 1.5 5.8 3.5 8.6 5.2 1.4.9 2.6 1.6 3.5 2.1.1 0 .1.1.2.1-3.3-6.8-6.2-13.7-8.8-20.7-5.3 1.1-9.2 0-11.9-1.8-2.7-1.9-3.9-4.4-3.8-5.6-.1-.9.5-1.6 1.5-1.7z"/><path class="st4" d="M106.8 558.3c0 13.1 8.1 23.7 18.2 23.7h455c10.1 0 18.2-10.6 18.2-23.7H106.8z"/><path class="st2" d="M155.4 290.9h394.2v247.6H155.4z"/><path class="st3" d="M556.6 264.8h-408c-7.6 0-13.8 6.2-13.8 13.8V540c0 7.6 6.2 13.8 13.8 13.8h408c7.6 0 13.8-6.2 13.8-13.8V278.6c0-7.7-6.2-13.8-13.8-13.8z"/><path class="st1" d="M155.4 285.5h394.2v247.6H155.4z"/><path class="st0" d="M295.7 558.3h-99.1l.3-4.4.4-5.5h97.6zm212.9 0h-99.2l.4-4.4.4-5.5h97.6z"/><g><path class="st0" d="M188 451.7h34.4v3.9H188zm47 0h34.4v3.9H235zm93.6 0h24.9v3.9h-24.9zm46.2 0h38.7v3.9h-38.7zm-32.5 13.4h17.6v3.9h-17.6zm0 10.2h17.6v3.9h-17.6zm0 10.3h17.6v3.9h-17.6zm0 10.2h17.6v3.9h-17.6z"/><path class="st6" d="M209.7 465.1h12.7v3.9h-12.7z"/><path class="st2" d="M209.7 475.3h12.7v3.9h-12.7z"/><path class="st4" d="M209.7 485.6h12.7v3.9h-12.7z"/><path class="st5" d="M209.7 495.8h12.7v3.9h-12.7z"/><path class="st0" d="M399.7 465.1h17.6v3.9h-17.6zm0 10.2h17.6v3.9h-17.6zm0 10.3h17.6v3.9h-17.6zm0 10.2h17.6v3.9h-17.6zm-165.1-30.7h17.6v3.9h-17.6zm0 10.2h26.1v3.9h-26.1zm0 10.3h32.9v3.9h-32.9zm0 10.2h15.1v3.9h-15.1zm-54.2-181.2H306v6.9H180.4z"/><path class="st4" d="M180.4 340.4h17.8v7.5h-17.8zm35.7 0h17.8v7.5h-17.8zm35.7 0h17.8v7.5h-17.8zm35.7 0h17.8v7.5h-17.8zm35.8 0h17.8v7.5h-17.8zm35.7 0h17.8v7.5H359zm35.7 0h17.8v7.5h-17.8z"/><path class="st0" d="M180.4 355.7h249.8v2.3H180.4z"/><path class="st0" d="M427.7 446.2H181v-90.4h-2v92.5h250.7v-92.5h-2v90.4z"/><path class="st0" d="M405.1 355.7h2v91.5h-2zm-22.7 0h2.1v91.5h-2.1zm-22.6 0h2v91.5h-2zm-22.6 0h2v91.5h-2zm-22.6 0h2v91.5h-2zm-22.6 0h2v91.5h-2zm-22.6 0h2v91.5h-2zm-22.6 0h2v91.5h-2zm-22.6 0h2v91.5h-2zm-22.6 0h2.1v91.5h-2.1z"/><path class="st0" d="M179 355.7h250.7v2H179zm1 22.7h248.7v2H180zm0 22.6h248.7v2H180zm0 22.6h248.7v2H180z"/><path class="st2" d="M203.6 396.2h16.2v50.1h-16.2zm45.2-10.4H265v60.5h-16.2zm45.3 24.7h16.2v35.8h-16.2zm45.2-36.8h16.2v72.6h-16.2zm45.2 19.6h16.2v53h-16.2z"/><path class="st6" d="M201.6 396.2h16.2v50.1h-16.2zm45.2-10.4H263v60.5h-16.2zm45.2 24.7h16.2v35.8H292zm45.2-36.8h16.2v72.6h-16.2zm45.3 19.6h16.2v53h-16.2z"/><path class="st0" d="M179 471.1h250.7v2.1H179zM179 481.3h250.7v2.1H179z"/><g><path class="st0" d="M179 491.6h250.7v2.1H179z"/></g><g><path class="st0" d="M179 501.8h250.7v2.1H179z"/></g><g><path class="st6" d="M473.5 352.4c.9-5.5 5.4-9.8 10.9-10.6l-.2-5.1-.5-12.6c-14.7 1.2-26.4 12.7-27.9 27.2l12.6.8 5.1.3z"/><path class="st5" d="M491.1 366.7c-1.5.6-3.1.9-4.8.9-2.9 0-5.6-.9-7.7-2.5l-3.5 3.8-8.5 9.2c5.3 4.5 12.2 7.2 19.7 7.2 4.7 0 9.1-1 13-2.9l-5.9-11.1-2.3-4.6zm25.2-5.4l-12.4-2.1c-1.2 4.6-4 8.4-7.9 10.9l5.9 11.1 2.7 5.2c8.8-5.1 15.3-13.8 17.5-24.1l-5.8-1z"/><path class="st6" d="M468.2 354.9l-12.6-.8-5.9-.4v.9c0 10.1 4.1 19.3 10.7 25.9l4-4.3 8.5-9.2c-2.8-3.2-4.6-7.4-4.7-12.1z"/><path class="st4" d="M495.9 339.3l-2.4 4.6c3.5 2.3 5.7 6.3 5.7 10.8v.8l5.1.9 12.4 2.1c.2-1.3.2-2.5.2-3.8 0-11.3-6.1-21.2-15.2-26.5l-5.8 11.1zm-8.9-2.7c2.3.1 4.4.6 6.4 1.4l5.8-11.2 2.7-5.2c-4.7-2.3-10-3.5-15.7-3.5l.2 5.9.6 12.6z"/></g><g><path class="st0" d="M446.7 407.2h78.4v3.9h-78.4zm0 34.3h3.9v3.9h-3.9zm7.7 0h70.7v3.9h-70.7z"/><path class="st4" d="M446.7 456.1h3.9v3.9h-3.9z"/><path class="st0" d="M454.4 456.1h70.7v3.9h-70.7z"/><path d="M446.7 470.8h3.9v3.9h-3.9z" fill="#6292ff"/><path class="st0" d="M454.4 470.8h70.7v3.9h-70.7z"/><path d="M446.7 485.4h3.9v3.9h-3.9z" fill="#da5544"/><path class="st0" d="M454.4 485.4h70.7v3.9h-70.7z"/><path class="st5" d="M446.7 500h3.9v3.9h-3.9z"/><path class="st0" d="M454.4 500h70.7v3.9h-70.7zm-7.7-82.3h78.4v13h-78.4z"/></g></g><g><path class="st3" d="M522.8 556.7c.3-.3.7-.5 1.1-.6.4-.1.8-.1 1.3-.1 1-.1 2-.3 2.9-.8.5-.3.9-.6 1.4-.8l2.9.1c.4.4.7 1 .8 1.6.1.5.1 1.1.1 1.6v.6h-10.8v-.6c0-.4 0-.8.3-1z"/><path class="st9" d="M532.7 551.2l-.3 3.3-3-.1-.2-3z"/><path class="st3" d="M494 555.5c.3-.3.7-.4 1.1-.5.4 0 .8 0 1.3.1 1 .1 2.1-.1 3-.5.5-.2 1-.5 1.5-.6l2.9.4c.4.5.5 1.1.6 1.7.1.5 0 1.1-.1 1.6l-.1.6-10.7-1.2.1-.6c0-.4.1-.8.4-1z"/><path class="st4" d="M535.3 503.7c.6-11.4.5-27.5-2.6-36.6 0-.2-23.9 2-23.9 2l-5.6 22.9c-2 8.1-2.9 16.3-2.8 24.6l.3 34.4 4 .3 7.5-45.5c2.8-5.4 5.8-11.6 8.1-17.7l8.7 63.4 4-.2c0-.1 2.3-47.6 2.3-47.6z"/><path class="st9" d="M504.5 551.2l-.7 3.2-2.9-.4.1-3z"/><path class="st10" d="M481.6 394.3c.7-.3 1.6 0 1.9.7 2 4 4.2 7.8 6.6 11.5 2.4 3.7 5 7.2 7.8 10.5s5.8 6.4 9.1 9.1c1.6 1.4 3.3 2.7 5 3.9.4.3.9.6 1.3.9l1.3.9c.9.6 1.8 1.1 2.7 1.7.3.2.5.4.8.6.2.2.4.5.6.7.3.5.6 1.1.7 1.8.3 1.3.1 2.7-.7 4-.8 1.3-2 2.1-3.3 2.3-.7.1-1.4.1-2.1 0-.3-.1-.7-.2-1-.3l-.9-.6c-.9-.7-1.8-1.5-2.7-2.3l-1.3-1.2c-.4-.4-.9-.8-1.3-1.2-1.7-1.6-3.4-3.4-4.9-5.1-3.1-3.5-6-7.3-8.5-11.2-2.5-3.9-4.7-8-6.6-12.2-1.9-4.2-3.6-8.4-5.1-12.7-.5-.7-.1-1.5.6-1.8z"/><path class="st2" d="M500.2 434.6l9.4 7.3c2.8 2.2 6.8 1.9 9-.9s1.8-7.2-1.1-9.4l-9.4-7.3-7.9 10.3z"/><path class="st2" d="M521.8 428.5c-9-.1-16 7.9-14.8 16.8l1.8 23.7c10 3.6 17.5 1.6 23.9-2l1.1-25.2c.7-7.1-4.9-13.2-12-13.3z"/><path class="st1" d="M531.8 433.5l-.2.2c1 1.4 1.7 3 2 4.7h.3c-.3-1.7-1-3.4-2.1-4.9zm-9.9 37.3v.3c2.2-.2 4.4-.8 6.6-1.7l-.1-.2c-2.1.8-4.2 1.3-6.5 1.6zm5.1-41.3c-1.6-.8-3.4-1.2-5.2-1.2h-.2c-4.3 0-8.5 1.9-11.3 5.2-1.7 1.9-2.8 4.2-3.3 6.6l.3.1c1.5-6.6 7.4-11.6 14.5-11.5 1.9 0 3.6.5 5.2 1.2v-.4zM508.6 466c-.1 0-.2.1-.3.1l.2 3 .2.1c2.2.8 4.5 1.4 6.6 1.7v-.3c-2.1-.3-4.2-.8-6.5-1.7l-.2-2.9zm-1.8-20.6l.9 12h.3l-.9-12h-.3z"/><path class="st3" d="M524 412.1s6.2 1.5 4.7 8.4c-1 4.6-4.4 7-9.2 7.8l4.5-16.2z"/><path class="st9" d="M517.5 423.7l.5 7.1c2 1.2 4 1.1 5.9-.3l-.5-7.1-5.9.3z"/><path class="st10" d="M517.6 424.6l.1 2.2c.9.5 1.9.7 3 .7h.2c1-.1 2-.5 2.7-1.2l-.1-2.1-5.9.4z"/><path class="st9" d="M514.6 415.4l.4 5.3.1 1.2c.3 2.9 2.7 5.1 5.6 5.1.3 0 .6 0 .9-.1.1 0 .2-.1.3-.1h.1c.4-.2.8-.4 1.1-.8.7-.8 1.1-1.6 1.5-2.5.3-.7.6-1.5.8-2.2.2-.9.4-1.8.2-2.8l-.4-4.6-9-.7-1.6 2.2z"/><path class="st3" d="M523.9 414s-10.3.6-8.2 9.7c0 0-3.2-6.5.1-10.9 3.6-4.8 8.5-3.2 10.2-.9 1.7 2.3 3 6.1-1.8 8.9-.1-.1 1.5-3.5-.3-6.8z"/><path class="st9" d="M523.7 419.5c.1 1.2 1.1 2.1 2.3 2 1.2-.1 2.1-1.1 2-2.3-.1-1.2-1.1-2.1-2.3-2-1.2.1-2.1 1.1-2 2.3z"/><path class="st3" d="M503.8 450.8l-7.4-8c4.5-4.2 6.9-9.8 6.9-15.9h10.9c0 9.1-3.8 17.8-10.4 23.9z"/><path class="st4" d="M514.2 427h-10.9c0-12-9.7-21.7-21.7-21.7-2.6 0-5.1.4-7.5 1.3l-3.8-10.2c3.6-1.3 7.4-2 11.3-2 18-.1 32.6 14.6 32.6 32.6z"/><path class="st2" d="M481.6 459.6c-18 0-32.6-14.6-32.6-32.6 0-13.6 8.6-25.9 21.4-30.6l3.8 10.2c-8.5 3.1-14.2 11.3-14.2 20.4 0 12 9.7 21.7 21.7 21.7 5.5 0 10.8-2.1 14.8-5.8l7.4 8c-6.1 5.6-14 8.7-22.3 8.7z"/><g><path class="st9" d="M471.1 455.3c0-.8.5-1.5 1.3-1.5 4.4-.5 8.8-1.1 13.1-2.1 4.3-.9 8.5-2.1 12.6-3.5 4.1-1.5 8-3.2 11.8-5.2 1.9-1 3.7-2.1 5.5-3.3.4-.3.9-.6 1.3-.9l1.3-.9c.8-.6 1.7-1.2 2.5-1.9.3-.2.6-.4.8-.5l.9-.3c.6-.1 1.3-.1 1.9 0 1.3.2 2.6.9 3.5 2.1.9 1.2 1.2 2.6 1 3.9-.1.7-.4 1.3-.8 1.9-.2.3-.4.6-.7.8-.3.3-.6.5-.9.7-1 .6-2.1 1.2-3.1 1.7l-1.6.8c-.5.3-1.1.5-1.6.8-2.1 1-4.3 2-6.5 2.8-4.4 1.7-9 3-13.5 3.9-4.6.9-9.2 1.5-13.7 1.9-4.6.3-9.1.4-13.7.3-.8 0-1.4-.7-1.4-1.5z"/><path class="st2" d="M515.5 452.5l10.1-6.2c3.1-1.9 4.3-5.7 2.4-8.8-1.9-3.1-6.1-4.2-9.1-2.3l-10.1 6.2 6.7 11.1z"/><path class="st1" d="M529.1 439.4c-.1-.7-.4-1.4-.8-2-.9-1.5-2.5-2.7-4.3-3.1-.3-.1-.6-.1-.9-.2v.3c2 .3 3.9 1.4 4.9 3.2 1.4 2.3 1.1 5-.5 7l.2.1c1.3-1.5 1.8-3.4 1.4-5.3zm-3.3 7.1s.1 0 .1-.1l-.3-.1-3 1.8.2.2 3-1.8zm-4.2 2.6l-.2-.2-2.9 1.7.2.2 2.9-1.7zm-4.4 2.6l-.2-.2-1.5.9-5.2-8.5-.2.1 5.3 8.8 1.8-1.1zm.2-15.9l-7.4 4.5.1.2 7.4-4.5-.1-.2z"/></g></g><g><path class="st10" d="M234.4 464c0-.8-.5-1.5-1.3-1.6-2.3-.3-4.6-.6-6.9-1-2.3-.4-4.5-.8-6.7-1.3s-4.3-1.2-6.2-2c-1.9-.8-3.7-1.9-5.3-3.1-3.2-2.5-5.7-6-8-9.7-.3-.5-.6-.9-.9-1.4l-.8-1.4c-.6-1-1.1-2-1.7-3-1.1-2-2.2-4-3.2-6.1-1.4-2.6-4.7-3.5-7.2-2s-3.3 4.8-1.7 7.3c1.4 1.9 2.7 3.9 4.1 5.8.7 1 1.4 1.9 2.2 2.9l1.1 1.4c.4.5.8.9 1.1 1.4 1.6 1.9 3.2 3.7 5 5.5 1.8 1.8 3.9 3.4 6.1 4.8 2.3 1.3 4.7 2.3 7.2 3 2.5.7 4.9 1.1 7.3 1.3 2.4.2 4.8.4 7.1.4 2.4.1 4.7.1 7 .1 1 0 1.7-.6 1.7-1.3z"/><path class="st3" d="M190.5 450.4l-6.3-10c-1.9-3-1.3-7 1.8-8.9 3-1.9 7.3-1.1 9.2 2l6.3 10-11 6.9z"/><path class="st9" d="M181.4 505.2l8.3 49.2 2.9-.5.8-49.1z"/><path class="st4" d="M194.2 504.7l-13.6.5c-3.7-9-6.9-28.9-3.1-38.1l15.2 3.4 1.5 34.2z"/><circle transform="rotate(-16.739 184.847 470.406)" class="st4" cx="184.8" cy="470.4" r="7.9"/><g class="st11"><path class="st4" d="M184.8 470.4v-.1z"/></g><path class="st9" d="M165.9 503.2l-4.8 50.2 3 .2 13.5-47.8z"/><path class="st4" d="M180.4 462.7c-3.2-1-6.5.2-8.5 2.7-.1.2-.3.4-.4.6-5.7 8.3-7.5 27.6-6.3 37l13.2 3 7.3-33.4c1.3-4.2-1.1-8.6-5.3-9.9z"/><path class="st2" d="M180.4 497.1l-1.9 8.9-2.2-.5v.3l2.4.5 2-9.1-.3-.1zm-11.9-25.8c-1.3 3.5-2.4 7.8-3.1 12.8v.3h.3c.6-4.6 1.7-9.1 3.1-12.9l-.3-.2zm-3.9 23.7h.3c0-2.2.2-4.5.4-6.8h-.3c-.3 2.3-.4 4.6-.4 6.8zm.6 8c-.2-1.3-.3-2.8-.3-4.4h-.3c.1 1.6.2 3.1.3 4.4v.2l8 1.8.1-.2-7.8-1.8zm18.6-21.8l-1.7 7.9h.3l1.7-7.9h-.3z"/><path class="st3" d="M170.4 556.6c-.2-.4-.6-.6-1-.7-.4-.1-.8-.1-1.2-.2-1-.2-2-.6-2.8-1.2-.4-.3-.8-.7-1.3-.9l-2.9-.3c-.4.4-.8.9-1 1.5-.2.5-.2 1.1-.3 1.6l-.1.6 10.7 1.2.1-.6c.1-.3 0-.7-.2-1zm29.1-1.5c-.3-.3-.7-.4-1.2-.4-.4 0-.8.1-1.3.1-1 .1-2.1 0-3-.4l-1.5-.6-2.9.5c-.3.5-.5 1.1-.5 1.7 0 .5 0 1.1.1 1.6l.1.6 10.7-1.6-.1-.6c0-.3-.1-.6-.4-.9zM182 428.8c9 .1 15.8 8.2 14.4 17.1l-3.6 24c-6.5 2.3-15.6 1.5-23.1-.7v-27.4c-.5-7.1 5.2-13.1 12.3-13z"/><path class="st1" d="M169.4 457.4v10.4h.3v-10.4h-.3zm12.6-28.8h-.1c-.4 0-.8 0-1.2.1v.3c.4 0 .8-.1 1.3-.1 2.1 0 4 .5 5.8 1.2l.1-.2c-1.8-.9-3.8-1.3-5.9-1.3zm11.3 5.3c-.8-.9-1.7-1.8-2.7-2.5l-.2.2c3.7 2.7 6.1 7.1 6.1 11.9 0 .8-.1 1.6-.2 2.4l-.8 5.3.3.1.8-5.3c.7-4.4-.5-8.8-3.3-12.1zm-.6 36c-5.9 2.1-13.9 1.6-20.9-.1v.3c4 1 8.1 1.5 11.8 1.5 3.5 0 6.6-.5 9.2-1.4l.1-.1 2.1-13.8h-.3l-2 13.6zm-16.9-39.5l-.1-.3c-1.1.6-2.1 1.4-2.9 2.3-2.4 2.5-3.6 5.9-3.3 9.3v6.4h.3v-6.4c-.4-4.7 2.1-9 6-11.3z"/><path class="st9" d="M186.2 424.7l-.4 7.3c-2.1 1.1-4 1-5.9-.4l.4-7.3 5.9.4z"/><path class="st10" d="M186.1 426.9v.8c-.9.5-2 .7-3.1.7h-.2c-1-.1-1.9-.5-2.6-1.2l.1-2.1 5.8 1.8z"/><path class="st9" d="M189.3 416.4l-.5 5.2-.1 1.2c-.3 2.9-2.8 5.1-5.7 5-.3 0-.6-.1-.9-.1-.1 0-.2-.1-.3-.1h-.1c-.4-.2-.8-.5-1.1-.8-.6-.8-1-1.6-1.4-2.5-.3-.8-.6-1.5-.8-2.3-.2-.9-.3-1.8-.2-2.8l.2-3.6 9.3-1.5 1.6 2.3z"/><path class="st3" d="M189 424.6s0-3.1-.1-4.6c-.1-1.4-.4-2.8-1.5-2.6-2.1.4-2.9-1.4-2.9-1.4-.6 0-1.2.1-1.9.3-3.1.8-3.6 0-4-.5-.8 2.4-.5 5.5-.5 5.8 0 .1.1.3.1.4.2.8.5 1.5.8 2.3.3.7.6 1.4 1 2v.5c-2.2-.4-4.9-2.8-5.6-4.7-2.3-7.2 1.6-11.5 7.1-12.6 4.8-.9 7.4 3.5 8.4 7.5.8 2.3-.3 7-.9 7.6z"/><path class="st9" d="M180.2 420.3c-.1 1.2-1.1 2.1-2.3 2-1.2-.1-2.1-1.1-2-2.3.1-1.2 1.1-2.1 2.3-2 1.2.1 2 1.1 2 2.3z"/><g><path transform="rotate(-180 274.437 454.01)" class="st2" d="M269 446.1h10.8V462H269z"/><path transform="rotate(-180 260.511 447.387)" class="st2" d="M255.1 432.8h10.8v29.1h-10.8z"/><path transform="rotate(-180 246.585 443.424)" class="st4" d="M241.2 424.9H252v37h-10.8z"/><path transform="rotate(-180 232.659 439.712)" class="st4" d="M227.2 417.5H238v44.4h-10.8z"/><path transform="rotate(-180 218.732 441.217)" class="st4" d="M213.3 420.5h10.8v41.4h-10.8z"/><path transform="rotate(-180 204.806 443.424)" class="st2" d="M199.4 424.9h10.8v37h-10.8z"/><path transform="rotate(-180 190.88 447.387)" class="st4" d="M185.5 432.8h10.8v29.1h-10.8z"/><path transform="rotate(-180 232.659 462.663)" class="st3" d="M183.1 461.9h99.2v1.5h-99.2z"/></g><g><path class="st9" d="M227.5 461.9c-.1-.8-.7-1.4-1.5-1.4h-6.9c-2.3-.1-4.6-.2-6.8-.4s-4.4-.6-6.4-1.1c-2-.6-3.9-1.3-5.7-2.4-3.5-2.1-6.5-5.1-9.3-8.5-.4-.4-.7-.8-1.1-1.3l-1-1.3c-.7-.9-1.4-1.8-2-2.7-1.4-1.8-2.7-3.7-4-5.6-1.7-2.3-5.1-2.8-7.4-.9-2.3 1.8-2.6 5.3-.6 7.5 1.6 1.7 3.2 3.4 4.9 5.2.8.9 1.7 1.7 2.5 2.6l1.3 1.3c.4.4.9.8 1.3 1.2 1.8 1.7 3.7 3.3 5.8 4.8 2.1 1.5 4.3 2.8 6.7 3.9 2.4 1 5 1.7 7.5 2 2.5.3 5 .4 7.4.3 2.4-.1 4.8-.3 7.1-.6s4.7-.6 7-.9c.7-.3 1.2-1 1.2-1.7z"/><path class="st3" d="M181.9 454.2l-7.7-9c-2.3-2.7-2.2-6.7.5-9.1 2.7-2.3 7.1-2.1 9.4.7l7.7 9-9.9 8.4z"/><path class="st1" d="M179.6 434.3c-1.2-.1-2.3.1-3.4.6l.1.2c2.6-1.2 5.9-.6 7.8 1.7l.7.8.2-.2-.7-.8c-1.1-1.3-2.8-2.2-4.7-2.3zm12.2 11.6l-8.1 6.8.2.2 8.3-7-4.4-5.2-.2.2 4.2 5zm-18-9.1c-1.8 2.1-1.9 5.2-.4 7.7l.2-.1c-1.4-2.3-1.4-5.3.3-7.4l-.1-.2zm7.4 17l.2-.2-3.7-4.4-.2.2 3.7 4.4z"/></g></g><g><path class="st3" d="M630.9 587.7H74.2c-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9H631c1.6 0 2.9 1.3 2.9 2.9-.1 1.6-1.4 2.9-3 2.9z"/></g><g><path transform="rotate(-40.957 194.403 297.627)" class="st2" d="M179.5 288.7h29.7v17.7h-29.7z"/><path transform="rotate(-40.957 148.955 337.083)" class="st4" d="M103.6 323.8h90.6v26.6h-90.6z"/><path class="st4" d="M294.2 300.4c28.1-24.4 31.2-67.2 6.7-95.3-24.4-28.1-67.2-31.2-95.3-6.7-25.9 22.5-30.5 60.4-12.1 88.2 1.6 2.4 3.4 4.8 5.4 7.1 2 2.3 4.1 4.4 6.2 6.3 25 22.1 63.3 22.9 89.1.4zm-76.9-88.6c20.7-18 52.3-15.8 70.3 5s15.8 52.3-5 70.3-52.3 15.8-70.3-5-15.8-52.3 5-70.3z"/><path class="st2" d="M212.3 282.1c-18-20.8-15.8-52.3 5-70.3 20.7-18 52.3-15.8 70.3 5s15.8 52.3-5 70.3c-20.7 17.9-52.3 15.7-70.3-5z"/><path class="st1" d="M263.6 217c.2-.4.4-.7.8-1 1-.8 2.5-.5 3.2.5l20.8 28.3c.8 1 .5 2.5-.5 3.2-1 .8-2.5.5-3.2-.5l-20.8-28.3c-.5-.6-.6-1.5-.3-2.2zm-11.1 8.2c.2-.4.4-.7.8-1 1-.8 2.5-.5 3.2.5l20.8 28.3c.8 1 .5 2.5-.5 3.2-1 .8-2.5.5-3.2-.5l-20.8-28.3c-.5-.6-.6-1.5-.3-2.2z"/></g><g><path class="st3" d="M410 551.8l-12.9 6.5c-.2-.4-.3-.9-.2-1.4.1-.6.5-1 .9-1.3.5-.3 1-.6 1.5-.8 1.2-.7 2.2-1.6 3-2.8.4-.6.7-1.2 1.2-1.8l3.6-1.7c.7.3 1.4.8 1.9 1.4.4.5.7 1.2 1 1.9zm12.6 4.6l-14.4 1.9c-.1-.5 0-1 .2-1.4.3-.5.8-.8 1.3-1 .5-.2 1.1-.2 1.7-.3 1.4-.2 2.6-.8 3.7-1.6.6-.4 1.1-.9 1.7-1.3l3.9-.4c.6.5 1.1 1.2 1.3 2 .4.7.5 1.4.6 2.1zm-6.1-47.8z"/><g class="st11"/><path class="st3" d="M416.5 508.6zm0 0z"/><path class="st2" d="M384.1 510.1l18.8 40.3 4.7-1.9-12-37.6 9.7-15.3 11 57.2 5.1-.3.1-73.2c.1-.7-30.9-2.6-30.9-2.6l-6.8 30.4c-.1 1.1 0 2 .3 3zm32.4-1.5z"/><g class="st11"/><path class="st10" d="M352.8 484.7c1.5-1.5 3-2.8 4.5-4.2.4-.3.7-.7 1.1-1 .4-.4.7-.7 1.1-1l1-1.1.5-.5.5-.5c2.7-2.9 5.1-6 7.3-9.3 1-1.7 2.1-3.3 3.1-5l.7-1.3c.1-.2.2-.4.4-.6l.3-.7 1.3-2.6c.1-.2.2-.4.3-.7l.3-.7.6-1.3.6-1.3.3-.7.2-.3.1-.3 1.1-2.7c.4-.9.7-1.8 1.1-2.8.4-1.2 1.4-2 2.6-2.4 1.2-.4 2.6-.4 3.9.2 1.3.6 2.3 1.6 2.8 2.7.5 1.2.5 2.5-.1 3.7-.5.9-1 1.8-1.6 2.8l-1.6 2.7-.2.3-.2.3-.4.7-.9 1.3-.9 1.3-.4.7c-.1.2-.3.4-.5.7l-1.8 2.6-.5.6c-.2.2-.3.4-.5.6l-1 1.3c-1.3 1.7-2.7 3.3-4.1 4.9-2.9 3.1-6 6.1-9.2 8.7l-.6.5-.6.5-1.3.9c-.4.3-.8.6-1.3.9-.4.3-.8.6-1.3.9-1.7 1.2-3.4 2.3-5 3.4-.5.4-1.3.3-1.9-.3-.3-.6-.3-1.4.2-1.9z"/><path class="st4" d="M383.8 465.5l5.6-12.2c1.7-3.7.4-8-3.3-9.7-3.7-1.7-8.4-.1-10 3.6l-5.6 12.2 13.3 6.1z"/><path class="st4" d="M389.8 435.7c-7.7 1.9-12.2 9.9-9.6 17.5l11.9 36.1c13.9 1.7 20.3-2.7 29.7-9.7l-12.4-33.5c-3-7.9-11.4-12.4-19.6-10.4z"/><path class="st1" d="M403.3 438.2c1.4 1 2.7 2.2 3.8 3.7l.3-.3c-1.1-1.4-2.4-2.7-3.8-3.7l-.3.3zm16 43.1l.2.3c.8-.6 1.5-1.1 2.3-1.7l.2-.2-3.2-8.7-.4.1 3.1 8.5c-.6.5-1.4 1.1-2.2 1.7zm-27.6 8.3h.3c2.7.3 5.1.5 7.3.4l-.1-.4c-2.2.1-4.5 0-7.2-.3l-7-21.2-.4.1 7.1 21.4zm20.6-3.7c-1 .5-1.9 1-3 1.4l.2.4c1.1-.5 2.1-1 3.1-1.5l-.3-.3zm2.1-26l.4-.2-3-8-.4.2 3 8zm-32.6-.2l.4-.1-2.1-6.5c-2.3-6.8 1.2-14.1 7.6-16.8.3-.1.6-.3 1-.4l-.2-.4-.9.3c-6.8 2.8-10.3 10.4-7.9 17.4l2.1 6.5z"/><path class="st4" d="M353.2 491.4c8.2 7.9 20.6 10.6 31.7 6l-11.3-26.9-20.4 20.9z"/><path class="st3" d="M373.6 470.4l29.2-1.4c-.2-3.3-.9-6.7-2.3-9.9-2.7-6.4-7.4-11.3-13.1-14.4l-13.8 25.7zm-11.4-26.9l11.3 26.9 13.9-25.7c-7.4-4-16.7-4.8-25.2-1.2z"/><path class="st3" d="M373.6 470.4l11.3 26.9c11.6-4.9 18.4-16.4 17.8-28.3l-29.1 1.4z"/><path class="st4" d="M346.7 481.8c1.6 3.7 3.8 7 6.6 9.6l20.4-21-29-3.4c-.7 4.9-.1 9.9 2 14.8z"/><g><path class="st9" d="M371.3 467.3c.5-.6 1.3-.7 1.9-.3 1.8 1.2 3.7 2.4 5.6 3.4.9.5 1.9 1 2.9 1.4 1 .4 1.9.8 2.9 1.1 1 .3 1.9.5 2.8.5h1.2c.4 0 .8-.1 1.1-.2.3-.1.6-.3.9-.4.3-.2.5-.4.8-.6.2-.2.5-.5.7-.8.2-.3.4-.6.6-1 .4-.7.7-1.6 1-2.5.3-.9.5-1.8.7-2.8.4-2 .6-4 .7-6.1.1-2.1.2-4.2.2-6.4 0-2.1-.1-4.3-.2-6.5 0-1.4.5-2.6 1.5-3.6.9-.9 2.2-1.5 3.7-1.5 1.4 0 2.7.6 3.7 1.6.9 1 1.4 2.3 1.3 3.7-.2 2.3-.4 4.6-.8 6.8-.3 2.3-.7 4.6-1.1 6.9-.5 2.3-1 4.6-1.8 7-.4 1.2-.8 2.3-1.4 3.5-.6 1.2-1.2 2.3-2 3.4-.4.6-.9 1.1-1.4 1.6-.5.5-1.1 1-1.7 1.4-.6.4-1.3.8-2.1 1.1-.7.3-1.5.5-2.2.6-.7.1-1.5.1-2.2.1h-.6l-.5-.1c-.3-.1-.7-.1-1-.2-1.3-.3-2.5-.7-3.6-1.2s-2.2-1.1-3.2-1.7c-1-.6-2-1.3-2.9-2-1.9-1.4-3.6-2.8-5.3-4.3-.6-.5-.7-1.3-.2-1.9z"/><path class="st4" d="M406.8 461.8l.4-13.4c.1-4.1-2.8-7.6-6.8-7.7-4.1-.1-7.7 3.2-7.9 7.2l-.4 13.4 14.7.5z"/><path class="st1" d="M392.2 449.3h.4V448c0-.5.1-.9.2-1.4l-.4-.1c-.1.5-.2 1-.2 1.5v1.3zm11.3 12.8l3.7.1.1-4.1-.4-.1-.1 3.8-3.3-.1v.4zm3.7-11.4l-.2 4.9h.4l.2-5-.4.1zm-12.7-7.9l.4.1c1.5-1.4 3.4-2.2 5.5-2.2 1.7.1 3.3.7 4.4 1.8l.2-.3c-1.3-1.2-2.9-1.8-4.6-1.9-1.1 0-2.2.2-3.3.6-1 .5-1.9 1.1-2.6 1.9zm-2.6 15.2l.4.1.1-3.4h-.4l-.1 3.3zm4.5 3.9l3.4.1v-.4l-3.3-.1-.1.4z"/></g><g><path class="st9" d="M383 434.5l4.8 8.4c2.5.2 4.3-.9 5.5-3.1l-4.8-8.4-5.5 3.1z"/><path class="st10" d="M383 434.5l2.2 3.8c.5-.1.9-.2 1.4-.4.1-.1.3-.1.4-.2 1.5-.9 2.5-2.4 2.8-4l-1.3-2.3-5.5 3.1z"/><path class="st9" d="M377.6 430.8l2.1 3.5.9 1.4c1.2 1.9 3.7 2.7 5.7 1.7.7-.3 1.3-.8 1.7-1.3.1-.1.2-.3.3-.4.1-.1.1-.2.2-.3.5-.9.8-1.8.7-2.9-.1-.9-.2-1.8-.3-2.8-.1-.6-.2-1.1-.3-1.7-.5-2.5-2.3-4.6-4.7-5.3-2.1-.6-4-.1-5.6 1.6-1.7 1.8-2 4.4-.7 6.5z"/><path class="st3" d="M385.7 429.1h-.8s0-3.2-.8-3.9c-1.2-1-4.5.3-5.9 1.4-.4.4-.7.7-.7 1.3.1 1.2.5 3.5 1.7 5.5 0 0-5-5.2-4.5-9.4.3-2.8.8-4.8 4.3-4.8 5.5 0 9.6 2.7 11.2 8.4l-3.5.2-1 1.3z"/><path class="st9" d="M385.9 429.5c.6 1 2 1.3 3.1.7s1.6-2 1-3c-.6-1-2-1.3-3.1-.7-1.2.6-1.6 2-1 3z"/></g></g><g><path class="st5" d="M305 499.7h70.1v58.6H305z"/><path class="st13" d="M281.2 499.7H305v58.6h-23.8z"/><path class="st13" d="M305 499.7l-9.4 17.9h-26.2l11.8-17.9zm81 19.9l-70 4.5-11-24.4 70.1 4.5z"/><path class="st5" d="M386 519.6h-70l-11-19.9h70.1zm-81-19.9l-5.3 20-30.3-2.1h26.2z"/></g><g><path class="st0" d="M38.9 241.8c3.5-18.6 10.8-36.5 20.7-52.7 5-8.1 10.7-15.8 17.1-22.9 3.2-3.6 6.5-7 10-10.3 3.5-3.3 7.1-6.4 10.8-9.4 15-11.9 32.3-20.9 50.6-26.7 9.2-2.9 18.6-4.9 28.1-6.1 2.4-.3 4.8-.5 7.1-.8l3.6-.3c1.2-.1 2.4-.1 3.6-.2 4.8-.2 9.6-.2 14.4 0 4.8.2 9.6.7 14.3 1.3 4.8.6 9.5 1.5 14.2 2.5 2.3.5 4.7 1.1 7 1.7l3.5 1c1.2.3 2.3.7 3.4 1.1.6.2 1.1.4 1.7.5l1.7.6c1.1.4 2.3.8 3.4 1.2 1.1.4 2.2.8 3.4 1.3l3.3 1.4c.6.2 1.1.5 1.7.7l1.6.7 3.3 1.5 3.2 1.6 1.6.8 1.6.8 3.2 1.7 3.1 1.7 1.6.9 1.5.9 3.1 1.8c4.1 2.4 8.1 4.9 12.1 7.5 4 2.6 7.9 5.2 11.9 7.9 7.8 5.3 15.6 10.7 23.5 15.9 3.9 2.6 7.9 5.1 11.9 7.6 4 2.4 8.1 4.8 12.2 7.1 2 1.2 4.1 2.2 6.2 3.3 1 .6 2.1 1 3.2 1.6 1.1.5 2.1 1.1 3.2 1.5 2.1 1 4.3 2 6.5 2.8 1.1.4 2.2.9 3.3 1.3l3.3 1.2 3.3 1.2c1.1.4 2.2.8 3.4 1.1l3.4 1c.6.2 1.1.3 1.7.5l1.7.4c1.1.3 2.3.6 3.4.8l3.5.7c.6.1 1.2.2 1.7.3l1.7.3 3.5.5c-9.4-.8-18.8-2.7-27.8-5.6-9-2.9-17.8-6.7-26.3-11-4.3-2.1-8.4-4.4-12.5-6.8-4.1-2.4-8.2-4.8-12.2-7.3s-8-5.1-12-7.6l-11.9-7.7c-4-2.6-7.9-5.1-11.9-7.6s-8-4.9-12.1-7.3l-3.1-1.7-1.5-.9-1.5-.8-3.1-1.7-3.1-1.6-1.6-.8-1.6-.8-3.2-1.5-3.2-1.4-1.6-.7c-.5-.2-1.1-.4-1.6-.7-17.2-7.2-35.7-11.2-54.3-11.9-18.6-.8-37.4 1.5-55.2 6.9-4.5 1.3-8.9 2.9-13.2 4.6-4.3 1.7-8.6 3.7-12.7 5.8-8.3 4.2-16.2 9.2-23.7 14.8-7.4 5.7-14.4 11.9-20.8 18.8-6.4 6.8-12.2 14.2-17.4 22-10.6 15.9-18.3 33.3-22.9 51.7z"/></g><g><path class="st0" d="M658 370.2c6.5 13.9 10.3 29.1 11.5 44.5 1.1 15.4-.4 31.1-4.6 46.1-4.2 14.9-11.2 29.1-20.3 41.6-9.1 12.5-20.3 23.5-33.2 31.9 11.9-9.7 22.3-21 30.7-33.6 8.4-12.6 14.9-26.4 19-41 4.1-14.5 5.9-29.7 5.3-44.9-.4-15.1-3.3-30.2-8.4-44.6z"/></g><g><path class="st1" d="M639.8 422.2c.4 9.5-.9 19.2-3.6 28.3-1.4 4.6-3.1 9.1-5.2 13.4-2.1 4.3-4.6 8.5-7.3 12.4-2.8 3.9-5.9 7.6-9.2 11.1-3.4 3.4-7 6.6-10.9 9.4-7.7 5.7-16.4 10.1-25.5 12.9 8.8-3.5 17.1-8.3 24.6-14.1 3.7-2.9 7.2-6.1 10.5-9.5 3.3-3.4 6.3-7 9-10.9 2.7-3.8 5.1-7.9 7.3-12.1 2.1-4.2 3.9-8.6 5.4-13.1 2.9-8.8 4.5-18.2 4.9-27.8z"/></g></svg>  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 700 700" xml:space="preserve" enable-background="new 0 0 700 700"><style>.st0{fill:#e5e6eb}.st1{fill:#fff}.st2{fill:#84a9ff}.st3{fill:#050f64}.st4{fill:#155bcd}.st5{fill:#ffbd00}.st6{fill:#ff654f}.st9{fill:#f5bdc8}.st10{fill:#ea8096}.st11{opacity:0}.st13{fill:#dca000}</style><path class="st0" d="M101.8 176.7c21.4-19.8 48.8-33.2 77.8-37.2 92.4-12.6 158.2 78.1 240.3 104.9 40.8 13.3 85.4 12.6 125.4 28 68.5 26.2 131.4 117.8 101 191.6-23.7 57.5-79.6 71.8-134.6 54-33.5-10.9-64.1-29.4-97.6-40.5-38.1-12.6-78.7-15.1-118.9-16.7s-80.6-2.4-119.6-12-77-28.9-101.2-60.9C40.8 343.4 48 260.8 73.1 213.7c7.4-13.9 17.2-26.3 28.7-37z"/><path class="st1" d="M82 257.1c5.7-23.2 18.9-44.7 37.3-60.4l1.7-1.5 1.8-1.4 1.8-1.4 1.8-1.3c.6-.4 1.2-.9 1.8-1.3l1.9-1.3c.6-.4 1.2-.9 1.9-1.3l1.9-1.2c5.1-3.2 10.5-6 16.1-8.4 11.1-4.7 23-7.8 35.1-9 12.1-1.1 24.3-.5 36.1 1.5 5.9 1 11.8 2.4 17.6 4 .7.2 1.5.4 2.2.6l2.2.7 2.2.7 2.1.7 2.1.7 2.1.8 2.1.8 2.1.8c5.6 2.2 11.1 4.6 16.5 7.2 5.4 2.6 10.7 5.4 15.9 8.3 10.4 5.9 20.6 12.2 30.5 18.8-10.4-5.9-20.7-11.8-31.4-17.2-5.3-2.7-10.7-5.3-16.1-7.7-5.4-2.4-10.9-4.7-16.5-6.7l-2.1-.8-2.1-.7-2.1-.7-2.1-.7-2.1-.7-2.1-.6-2.1-.6-2.1-.6c-5.7-1.5-11.5-2.8-17.3-3.7-11.6-1.9-23.5-2.5-35.2-1.3-11.7 1.1-23.2 4-34.1 8.5-5.4 2.2-10.7 4.9-15.8 7.9l-1.9 1.1c-.6.4-1.2.8-1.9 1.2l-1.8 1.2c-.6.4-1.2.8-1.8 1.3l-1.8 1.3-1.8 1.3-1.8 1.3-1.7 1.4c-18.2 15.2-32 35.7-39.1 58.4z"/><path class="st2" d="M183.1 543.2c-.3 1.2-.5 1.8-.5 1.8-.7-.5-1.4-.9-2.1-1.4-120.8-82.8-72.6-232.2-72.6-232.2 115.7 67.3 80.1 213.8 75.2 231.8z"/><path class="st3" d="M183.1 543.2c-.3 1.2-.5 1.8-.5 1.8-.7-.5-1.4-.9-2.1-1.4-10.1-29.9-20.1-59.8-29.8-89.8-5-15.5-10-31.1-14.8-46.7l-3.6-11.7-3.5-11.7c-1.2-3.9-2.2-7.8-3.4-11.8-.6-2-1.1-3.9-1.6-5.9l-1.6-5.9 1.6 5.9c.5 2 1.1 3.9 1.7 5.9 1.2 3.9 2.3 7.8 3.5 11.7l3.6 11.7 3.7 11.7c5 15.5 10.2 31 15.4 46.5 10.4 30 20.8 59.9 31.4 89.7zM137.9 384.9c-.1 0-.2 0-.4-.1-.3-.1-.4-.5-.2-.8 3.7-7.2 6-15.3 6.7-23.4 0-.3.3-.5.6-.5s.5.3.5.6c-.7 8.2-3.1 16.5-6.9 23.8 0 .3-.2.4-.3.4zM154 430.5h-.3c-.3-.1-.4-.5-.3-.7 3.4-8.3 7.6-16.4 12.3-24.1.2-.3.5-.3.8-.2.3.2.3.5.2.8-4.7 7.6-8.8 15.6-12.2 23.9-.1.1-.3.3-.5.3zM137.4 440.3h-.3c-9.5-3.9-18.3-9.3-26.1-16.1-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1 7.7 6.7 16.3 12 25.7 15.9.3.1.4.5.3.7 0 .2-.1.3-.3.4zM125.9 390.5c-.2.1-.4.1-.6-.1l-19.2-15c-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1l19.2 15c.2.2.3.6.1.8 0 .1-.1.2-.2.2zM170.7 478.4h-.3c-.3-.1-.4-.5-.3-.7l10.1-23.5c.1-.3.5-.4.7-.3.3.1.4.5.3.7l-10.1 23.5c0 .1-.2.3-.4.3zM151.6 481.6h-.3l-24.3-10c-.3-.1-.4-.5-.3-.7.1-.3.5-.4.7-.3l24.3 10c.3.1.4.5.3.7-.1.1-.3.3-.4.3z"/><path class="st4" d="M182.3 543.2c.3 1.2.4 1.9.4 1.9-.8-.1-1.7-.2-2.5-.3C35 525 11 369.8 11 369.8c133.5 8.2 167.5 155.1 171.3 173.4z"/><path class="st1" d="M182.3 543.2c.3 1.2.4 1.9.4 1.9-.8-.1-1.7-.2-2.5-.3-22.5-22.1-44.8-44.4-66.9-66.8-11.5-11.6-22.9-23.3-34.2-35.1l-8.5-8.8-8.4-8.9c-2.8-3-5.5-6-8.3-9-1.4-1.5-2.7-3-4.1-4.6l-4-4.6 4.1 4.5c1.4 1.5 2.7 3 4.1 4.5 2.8 3 5.6 6 8.4 8.9l8.5 8.8 8.6 8.7c11.5 11.6 23 23.1 34.7 34.6 22.5 22.2 45.2 44.3 68.1 66.2zM70.7 422.1c-.1.1-.2.1-.3.1-.3 0-.6-.3-.6-.6.1-8.1-1.5-16.4-4.5-23.9-.1-.3 0-.6.3-.7.3-.1.6 0 .7.3 3 7.7 4.6 16.1 4.6 24.4 0 .1-.1.3-.2.4zM105.6 455.5c-.1.1-.2.1-.3.1-.3 0-.6-.2-.6-.5-.7-9-.6-18.1.2-27 0-.3.3-.5.6-.5s.5.3.5.6c-.8 8.9-.9 17.9-.2 26.8.1.2 0 .4-.2.5zM95.2 471.7c-.1.1-.2.1-.3.1-10.3.8-20.5-.1-30.5-2.7-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4 9.9 2.5 20 3.4 30.1 2.6.3 0 .6.2.6.5 0 .4-.1.5-.2.6zM62.6 432.4c-.1.1-.3.2-.5.2l-23.9-4.8c-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4l23.9 4.8c.3.1.5.4.4.7-.1.1-.1.2-.2.2zM142.1 490.8c-.1.1-.2.1-.3.1-.3 0-.6-.2-.6-.5l-1.5-25.5c0-.3.2-.6.5-.6s.6.2.6.5l1.5 25.5c0 .2-.1.4-.2.5zM126.4 502.3c-.1.1-.2.1-.3.1l-26.2 2c-.3 0-.6-.2-.6-.5s.2-.6.5-.6l26.2-2c.3 0 .6.2.6.5 0 .2-.1.4-.2.5z"/><g><path class="st5" d="M259.6 503.3c1.2.5 1.8.7 1.8.7-.5.7-1.1 1.3-1.7 1.9C164 616.8 20.9 552.3 20.9 552.3c79.7-107.4 221.4-55.9 238.7-49z"/><path class="st1" d="M259.6 503.3c1.2.5 1.8.7 1.8.7-.5.7-1.1 1.3-1.7 1.9-30.8 6.8-61.6 13.3-92.5 19.7-16 3.3-32 6.5-48 9.6l-12 2.3-12 2.2c-4 .7-8 1.4-12.1 2-2 .4-4 .6-6 .9l-6.1.9 6-1c2-.3 4-.6 6-1 4-.7 8-1.4 12-2.2l12-2.3 12-2.4c16-3.3 31.9-6.7 47.9-10.2 31-6.9 61.9-13.9 92.7-21.1zM97.3 530.8c0 .1 0 .2-.1.3-.2.3-.5.3-.8.2-6.8-4.5-14.6-7.7-22.5-9.3-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4 8.1 1.6 16 4.9 22.9 9.5.1 0 .1.2.2.4zM144.3 519.7c0 .1 0 .2-.1.3-.2.3-.5.4-.8.2-7.9-4.3-15.5-9.4-22.5-14.9-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1 7 5.5 14.6 10.5 22.4 14.8.2.1.3.3.3.5zM152.2 537.3c0 .1 0 .2-.1.3-4.9 9-11.3 17.2-18.8 24.1-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8 7.5-6.9 13.7-14.9 18.6-23.8.2-.3.5-.4.8-.2.2.1.3.3.3.4zM101.5 543.2c.1.2 0 .4-.1.6l-17 17.5c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8l17-17.5c.2-.2.6-.2.8 0 .1 0 .1.1.1.2zM193.8 508.4c0 .1 0 .2-.1.3-.2.3-.5.4-.8.2l-22.2-12.7c-.3-.2-.4-.5-.2-.8.2-.3.5-.4.8-.2l22.2 12.7c.2.2.3.3.3.5zM194.9 527.8c0 .1 0 .2-.1.3l-12.7 23.1c-.2.3-.5.4-.8.2-.3-.2-.4-.5-.2-.8l12.7-23.1c.2-.3.5-.4.8-.2.1.2.3.3.3.5z"/></g><g><path class="st2" d="M608.8 430.3c-1 .2-2.4-.3-4.4-1.4-3.2-1.9-8.3-4.9-10.2-6.1 3 6.3 5.8 12.7 8.3 19.2 4.5-1 7.9-.1 10.1 1.4 2.2 1.5 3.3 3.6 3.3 4.6-.1 2-1.8 2.4-4.9.3-1.6-1.1-3.7-2.6-5.5-3.9-1.3-.9-2.3-1.7-2.8-2 .8 2 1.5 4 2.2 6h.2c1.3.2 3.1 3.1 3.9 4.1 1.7 2.3 3 4.9 3.2 7.8.1 1.2-.1 2.6-1.2 3.2-1.2.6-2.6-.3-3.5-1.3-2.5-2.8-4-6.5-4.1-10.2 0-1-.1-3.3 1.2-3.5-.8-2-1.5-3.9-2.3-5.9-.1.6-.4 1.9-.7 3.4-.5 2.1-1.1 4.7-1.7 6.4-1.1 3.5-2.7 4.1-4 2.8-.7-.7-1.1-2.7-.3-5.2.8-2.4 2.6-5.3 6.6-7.7-2.7-6.4-5.6-12.7-8.8-18.9-.1.8-.3 2.2-.5 3.7-.3 2.6-.9 5.7-1.4 7.8-.5 2.1-1.2 3.4-2 4-.8.6-1.7.4-2.5-.3-.9-.7-1.6-3.1-.9-6.2.6-2.9 2.6-6.5 7-9.6-3.5-6.6-7.2-13.1-11.2-19.4v.3c0 1 0 2.5-.1 4.1-.1 1.6-.2 3.4-.3 5-.1 1.7-.4 3.3-.5 4.6-.8 5.3-3 6.6-5.2 5-1.2-.8-2.1-3.7-1.7-7.4.2-1.9.9-4 2.2-6.2 1.1-2 2.8-4.2 5.2-6.3-3.8-5.8-7.8-11.5-12-17 .1 1.2.2 2.8.2 4.6.1 1.8.1 3.9.1 5.8v2.8c0 .9-.1 1.8-.1 2.5-.4 6.1-2.8 7.8-5.5 6.2-.7-.4-1.4-1.4-1.9-2.8s-.8-3.3-.7-5.4c.1-2.2.7-4.6 1.9-7.3 1.1-2.4 2.8-5 5.2-7.6-4.2-5.4-8.5-10.5-13.1-15.5l2-1.8c4.5 5.2 8.8 10.5 12.9 16 3.1-1.6 6.1-2.5 8.8-2.7 3-.3 5.6.1 7.8.9s4 1.9 5.3 3.1c1.2 1.2 2 2.4 2.2 3.3.7 3.5-2 4.7-8 2.5-3.1-1.2-7.3-2.8-10.7-4.2-1.7-.6-3.3-1.2-4.4-1.6 4.1 5.6 8 11.5 11.6 17.4 2.9-1.2 5.6-1.7 8-1.8 2.6 0 4.8.5 6.7 1.4 3.8 1.7 5.8 4.5 6 6 .3 3.1-2 4-7.1 1.6-2.6-1.3-6.1-3-9-4.4-1.4-.7-2.8-1.3-3.7-1.8-.1 0-.1-.1-.2-.1 3.9 6.4 7.5 13 10.8 19.8 5.1-1.6 9.2-.9 12 .7 2.8 1.6 4.3 4 4.4 5.2-.7 1.1-1.2 1.8-2.2 2z"/></g><g><path class="st2" d="M552.1 373.7c-.5 1.1-.8 1.7-.8 1.7l-1.8-1.8c-105.3-101.8-32.8-241.1-32.8-241.1 102.7 85.7 43.2 224.2 35.4 241.2z"/><path class="st1" d="M552.1 373.7c-.5 1.1-.8 1.7-.8 1.7l-1.8-1.8c-5-31.1-9.8-62.3-14.4-93.5-2.4-16.1-4.7-32.3-6.8-48.5l-1.6-12.1-1.5-12.2c-.5-4.1-.9-8.1-1.4-12.2-.2-2-.4-4.1-.6-6.1l-.5-6.1.6 6.1c.2 2 .4 4.1.7 6.1.5 4 1 8.1 1.5 12.1l1.6 12.1 1.7 12.1c2.4 16.1 4.9 32.3 7.5 48.4 5.1 31.4 10.3 62.7 15.8 93.9zM533.9 210c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.1-.8 4.9-6.5 8.5-14.1 10.6-21.9.1-.3.4-.5.7-.4.3.1.5.4.4.7-2.1 8-5.8 15.7-10.7 22.3-.3.1-.5.2-.6.2zM542.2 257.6c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.2-.8 4.8-7.6 10.2-14.9 16.2-21.7.2-.2.6-.3.8-.1.2.2.3.6.1.8-5.9 6.7-11.3 13.9-16.1 21.5-.1.3-.3.4-.5.4zM524.2 264.5c-.1 0-.2 0-.3-.1-8.7-5.4-16.5-12.2-23-20.2-.2-.2-.2-.6.1-.8.2-.2.6-.2.8.1 6.4 7.9 14.1 14.6 22.7 19.9.3.2.3.5.2.8-.2.2-.4.3-.5.3zM521.2 213.5c-.2 0-.4 0-.5-.2l-16.5-18c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l16.5 18c.2.2.2.6 0 .8-.1.2-.2.2-.3.2zM550.7 307.7c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.2-.8l13.9-21.5c.2-.3.5-.3.8-.2.3.2.3.5.2.8l-13.9 21.5c-.1.2-.3.3-.5.3zM531.2 307.6c-.1 0-.2 0-.3-.1l-22.3-13.9c-.3-.2-.3-.5-.2-.8.2-.3.5-.3.8-.2l22.3 13.9c.3.2.3.5.2.8-.1.2-.3.3-.5.3z"/><g><path class="st4" d="M526.6 382.8c-1 .7-1.6 1-1.6 1-.2-.8-.4-1.6-.6-2.5-35-142.2 100.5-221.5 100.5-221.5 41.5 127.2-82.7 212.8-98.3 223z"/><path class="st3" d="M526.6 382.8c-1 .7-1.6 1-1.6 1-.2-.8-.4-1.6-.6-2.5 12.3-29 24.8-58 37.5-86.8 6.6-14.9 13.3-29.8 20-44.7l5.1-11.1 5.2-11.1c1.7-3.7 3.6-7.3 5.3-11 .9-1.8 1.8-3.6 2.7-5.5l2.8-5.4-2.7 5.5c-.9 1.8-1.8 3.6-2.7 5.5-1.7 3.7-3.5 7.4-5.2 11.1l-5.1 11.1-5 11.2c-6.6 14.9-13 29.9-19.4 44.9-12.2 29.2-24.3 58.5-36.3 87.8zM598.2 234.5c-.1-.1-.2-.2-.2-.3-.1-.3 0-.6.3-.7 7.6-2.9 14.7-7.4 20.6-13 .2-.2.6-.2.8 0 .2.2.2.6 0 .8-6 5.7-13.3 10.2-21 13.2-.1.1-.3.1-.5 0zM580 279.3c-.1-.1-.2-.1-.2-.2-.1-.3 0-.6.3-.8 8.1-3.9 16.6-7.2 25.2-9.7.3-.1.6.1.7.4.1.3-.1.6-.4.7-8.6 2.5-17 5.8-25 9.7-.3 0-.5 0-.6-.1zM561 275.5c-.1-.1-.2-.1-.2-.3-4.5-9.3-7.4-19.1-8.7-29.3 0-.3.2-.6.5-.6s.6.2.6.5c1.3 10.1 4.2 19.8 8.6 29 .1.3 0 .6-.3.8-.1 0-.3 0-.5-.1zM585.6 230.8c-.2-.1-.3-.2-.4-.4l-4.4-24c-.1-.3.1-.6.5-.7.3-.1.6.1.7.5l4.4 24c.1.3-.1.6-.5.7-.1-.1-.2-.1-.3-.1zM560.5 326.2c-.1-.1-.2-.1-.2-.2-.1-.3 0-.6.3-.8l23.2-10.8c.3-.1.6 0 .8.3.1.3 0 .6-.3.8l-23.2 10.8c-.2 0-.4 0-.6-.1zM544.1 315.8c-.1-.1-.2-.1-.2-.2l-11.5-23.7c-.1-.3 0-.6.3-.8.3-.1.6 0 .8.3l11.5 23.7c.1.3 0 .6-.3.8-.2 0-.5 0-.6-.1z"/></g><g><path class="st5" d="M482.2 415.1c-1.2 0-1.9-.1-1.9-.1l.9-2.4C532.4 275.4 689 286.2 689 286.2c-37.4 128.5-188.2 129.3-206.8 128.9z"/><path class="st1" d="M482.2 415.1c-1.2 0-1.9-.1-1.9-.1l.9-2.4c26.5-17 53.2-33.9 79.9-50.6 13.9-8.6 27.8-17.2 41.7-25.6l10.5-6.3 10.5-6.2c3.5-2.1 7.1-4.1 10.6-6.1 1.8-1 3.6-2 5.3-3l5.4-2.9-5.3 3c-1.8 1-3.6 2-5.3 3-3.5 2.1-7 4.1-10.5 6.2l-10.5 6.4-10.4 6.4c-13.8 8.6-27.6 17.4-41.4 26.2-26.6 17.2-53.1 34.5-79.5 52zM624.9 333c0-.1-.1-.2 0-.4.1-.3.4-.5.7-.4 7.9 1.8 16.3 2.2 24.3.9.3 0 .6.2.7.5 0 .3-.2.6-.5.7-8.2 1.3-16.7 1-24.8-.9l-.4-.4zM584.6 359.7c0-.1-.1-.2 0-.3 0-.3.3-.5.6-.5 8.9 1.3 17.8 3.4 26.3 6.2.3.1.5.4.4.7-.1.3-.4.5-.7.4-8.5-2.7-17.3-4.8-26.1-6.1-.3-.1-.4-.3-.5-.4zM571.1 345.9c-.1-.1-.1-.2-.1-.3 1.5-10.2 4.6-20 9.3-29.2.1-.3.5-.4.8-.2.3.1.4.5.2.8-4.6 9.1-7.7 18.7-9.2 28.8 0 .3-.3.5-.6.5-.2-.2-.4-.3-.4-.4zM616.6 322.8c-.1-.2-.1-.4-.1-.6l9.9-22.3c.1-.3.5-.4.8-.3.3.1.4.5.3.8l-9.9 22.3c-.1.3-.5.4-.8.3l-.2-.2zM542.1 387.4c0-.1-.1-.2 0-.3.1-.3.3-.5.7-.5l25.2 4.2c.3.1.5.3.5.7-.1.3-.3.5-.7.5l-25.2-4.2c-.3-.1-.4-.2-.5-.4zM534.4 369.6c0-.1-.1-.2 0-.3l3.9-26c0-.3.3-.5.6-.5s.5.3.5.6l-3.9 26c0 .3-.3.5-.6.5s-.4-.2-.5-.3z"/></g></g><g><path class="st2" d="M445 229c-.1 1 .4 2.4 1.6 4.3 2.1 3.1 5.4 8 6.6 9.9-6.4-2.7-13-5.1-19.6-7.3.8-4.5-.3-7.9-1.9-10-1.6-2.2-3.7-3.1-4.8-3-2 .2-2.3 1.9 0 4.9 1.1 1.5 2.8 3.5 4.2 5.3 1 1.2 1.8 2.2 2.2 2.7-2-.7-4.1-1.3-6.1-1.9v-.2c-.3-1.3-3.3-3-4.3-3.7-2.4-1.6-5.1-2.7-7.9-2.8-1.2 0-2.6.3-3.1 1.4-.5 1.2.5 2.6 1.5 3.4 2.9 2.4 6.7 3.6 10.4 3.5 1 0 3.3 0 3.5-1.4 2 .7 4 1.3 6 2-.6.2-1.9.5-3.4.9-2.1.6-4.6 1.4-6.3 2-3.4 1.3-4 2.9-2.6 4.2.7.6 2.8 1 5.2 0 2.4-.9 5.2-2.9 7.3-7 6.6 2.3 13 4.9 19.3 7.7-.8.1-2.2.4-3.7.7-2.5.5-5.6 1.2-7.7 1.8-2.1.6-3.3 1.4-3.9 2.2-.5.8-.4 1.7.4 2.5s3.2 1.4 6.2.5c2.9-.8 6.3-2.9 9.3-7.5 6.8 3.1 13.5 6.5 20 10.2h-.3c-1 .1-2.5.2-4.1.4-1.6.2-3.3.4-5 .6-1.7.2-3.3.5-4.6.8-5.2 1.1-6.4 3.3-4.7 5.5.9 1.1 3.8 1.9 7.5 1.3 1.9-.3 4-1.1 6.1-2.5 2-1.3 4-3 6-5.5 6 3.4 11.9 7.1 17.7 11.1h-4.6c-1.8 0-3.9.1-5.8.2-1 .1-1.9.1-2.8.2-.9.1-1.7.2-2.5.3-6.1.8-7.6 3.2-5.9 5.8.4.7 1.5 1.3 2.9 1.7 1.5.4 3.3.7 5.5.4 2.2-.3 4.6-.9 7.2-2.3 2.3-1.2 4.8-3 7.3-5.6 5.6 3.9 11 8 16.2 12.3l1.7-2.1c-5.4-4.2-11-8.2-16.7-12 1.4-3.2 2.1-6.2 2.2-8.9.1-3-.4-5.6-1.3-7.7-.9-2.1-2.1-3.9-3.4-5.1-1.3-1.2-2.5-1.9-3.4-2-3.5-.5-4.6 2.2-2 8.1 1.4 3 3.2 7.1 4.8 10.5.7 1.7 1.4 3.2 1.9 4.3-5.9-3.8-11.9-7.4-18-10.7 1-3 1.4-5.7 1.3-8.1-.1-2.6-.8-4.8-1.7-6.6-1.9-3.7-4.8-5.5-6.3-5.6-3.1-.2-3.9 2.3-1.2 7.2 1.4 2.5 3.3 5.9 4.9 8.8.8 1.4 1.5 2.7 2 3.6 0 .1.1.1.1.2-6.6-3.5-13.4-6.8-20.3-9.7 1.3-5.2.4-9.2-1.3-11.9-1.8-2.8-4.2-4.1-5.4-4.1-1.6.3-2.3.8-2.4 1.8z"/></g><g><path class="st2" d="M100.2 255.8c1-.1 2.4.5 4.3 1.8 3 2.2 7.8 5.7 9.6 7-2.4-6.5-4.6-13.2-6.4-19.9-4.6.6-7.9-.6-9.9-2.3-2.1-1.7-3-3.9-2.8-4.9.3-2 2-2.2 4.9.2 1.5 1.2 3.4 3 5.1 4.4 1.2 1 2.2 1.9 2.6 2.3-.6-2.1-1.1-4.1-1.6-6.2h-.2c-1.3-.3-2.8-3.4-3.5-4.5-1.5-2.4-2.5-5.2-2.5-8 0-1.2.4-2.6 1.5-3 1.3-.5 2.6.6 3.4 1.6 2.3 3 3.3 6.8 3.1 10.5-.1 1-.2 3.3-1.5 3.4.6 2 1.2 4.1 1.8 6.1.2-.6.6-1.9 1-3.4.7-2.1 1.6-4.5 2.3-6.2 1.4-3.4 3.1-3.9 4.3-2.4.6.7.8 2.8-.2 5.2-1 2.4-3.1 5-7.3 7 2 6.6 4.4 13.2 6.9 19.6.2-.8.5-2.2.8-3.7.6-2.5 1.4-5.6 2.1-7.6.7-2.1 1.5-3.3 2.4-3.8.9-.5 1.7-.3 2.5.5s1.2 3.3.3 6.2c-.9 2.8-3.2 6.2-7.8 8.9 2.8 6.9 5.9 13.8 9.3 20.4v-.3c.1-1 .3-2.4.5-4s.5-3.3.8-5c.3-1.7.7-3.3 1-4.6 1.3-5.2 3.6-6.3 5.7-4.5 1.1.9 1.8 3.9 1 7.5-.4 1.8-1.3 3.9-2.8 6-1.3 1.9-3.2 3.9-5.8 5.8 3.2 6.2 6.6 12.2 10.3 18.1 0-1.2.1-2.8.2-4.6.1-1.8.3-3.9.5-5.8.1-1 .2-1.9.3-2.8.1-.9.3-1.7.4-2.5 1-6 3.5-7.5 6.1-5.6.6.5 1.2 1.5 1.6 3 .3 1.5.5 3.3.2 5.5s-1.1 4.5-2.6 7.1c-1.3 2.3-3.2 4.7-5.9 7 3.6 5.7 7.5 11.3 11.6 16.7l-2.2 1.6c-4-5.6-7.8-11.3-11.3-17.2-3.3 1.3-6.3 1.9-9 1.9-3 0-5.6-.6-7.7-1.6-2.1-1-3.8-2.3-4.9-3.6-1.1-1.3-1.8-2.6-1.8-3.4-.3-3.5 2.4-4.5 8.2-1.7 2.9 1.5 7 3.5 10.3 5.2 1.7.8 3.1 1.5 4.2 2-3.6-6-6.9-12.2-9.9-18.5-3 .9-5.7 1.2-8.1 1-2.6-.2-4.7-1-6.5-2-3.6-2-5.3-5-5.4-6.6 0-3.1 2.4-3.8 7.2-.9 2.4 1.5 5.8 3.5 8.6 5.2 1.4.9 2.6 1.6 3.5 2.1.1 0 .1.1.2.1-3.3-6.8-6.2-13.7-8.8-20.7-5.3 1.1-9.2 0-11.9-1.8-2.7-1.9-3.9-4.4-3.8-5.6-.1-.9.5-1.6 1.5-1.7z"/></g><g><path class="st4" d="M106.8 558.3c0 13.1 8.1 23.7 18.2 23.7h455c10.1 0 18.2-10.6 18.2-23.7H106.8z"/><path class="st2" d="M155.4 290.9H549.6V538.5H155.4z"/><path class="st3" d="M556.6 264.8h-408c-7.6 0-13.8 6.2-13.8 13.8V540c0 7.6 6.2 13.8 13.8 13.8h408c7.6 0 13.8-6.2 13.8-13.8V278.6c0-7.7-6.2-13.8-13.8-13.8z"/><path class="st1" d="M155.4 285.5H549.6V533.1H155.4z"/><path class="st0" d="M295.7 558.3L196.6 558.3 196.9 553.9 197.3 548.4 294.9 548.4zM508.6 558.3L409.4 558.3 409.8 553.9 410.2 548.4 507.8 548.4z"/></g><g><path class="st0" d="M188 451.7H222.4V455.59999999999997H188zM235 451.7H269.4V455.59999999999997H235zM328.6 451.7H353.5V455.59999999999997H328.6zM374.8 451.7H413.5V455.59999999999997H374.8zM342.3 465.1H359.90000000000003V469H342.3zM342.3 475.3H359.90000000000003V479.2H342.3zM342.3 485.6H359.90000000000003V489.5H342.3zM342.3 495.8H359.90000000000003V499.7H342.3z"/><path class="st6" d="M209.7 465.1H222.39999999999998V469H209.7z"/><path class="st2" d="M209.7 475.3H222.39999999999998V479.2H209.7z"/><path class="st4" d="M209.7 485.6H222.39999999999998V489.5H209.7z"/><path class="st5" d="M209.7 495.8H222.39999999999998V499.7H209.7z"/><path class="st0" d="M399.7 465.1H417.3V469H399.7zM399.7 475.3H417.3V479.2H399.7zM399.7 485.6H417.3V489.5H399.7zM399.7 495.8H417.3V499.7H399.7zM234.6 465.1H252.2V469H234.6zM234.6 475.3H260.7V479.2H234.6zM234.6 485.6H267.5V489.5H234.6zM234.6 495.8H249.7V499.7H234.6zM180.4 314.6H306V321.5H180.4z"/><path class="st4" d="M180.4 340.4H198.20000000000002V347.9H180.4zM216.1 340.4H233.9V347.9H216.1zM251.8 340.4H269.6V347.9H251.8zM287.5 340.4H305.3V347.9H287.5zM323.3 340.4H341.1V347.9H323.3zM359 340.4H376.8V347.9H359zM394.7 340.4H412.5V347.9H394.7z"/><g><path class="st0" d="M180.4 355.7H430.20000000000005V358H180.4z"/></g><g><path class="st0" d="M427.7 446.2H181v-90.4h-2v92.5h250.7v-92.5h-2v90.4z"/><path class="st0" d="M405.1 355.7H407.1V447.2H405.1zM382.4 355.7H384.5V447.2H382.4zM359.8 355.7H361.8V447.2H359.8zM337.2 355.7H339.2V447.2H337.2zM314.6 355.7H316.6V447.2H314.6zM292 355.7H294V447.2H292zM269.4 355.7H271.4V447.2H269.4zM246.8 355.7H248.8V447.2H246.8zM224.2 355.7H226.2V447.2H224.2zM201.6 355.7H203.7V447.2H201.6z"/><path class="st0" d="M179 355.7H429.7V357.7H179zM180 378.4H428.7V380.4H180zM180 401H428.7V403H180zM180 423.6H428.7V425.6H180z"/><g><path class="st2" d="M203.6 396.2H219.79999999999998V446.3H203.6zM248.8 385.8H265V446.3H248.8zM294.1 410.5H310.3V446.3H294.1zM339.3 373.7H355.5V446.29999999999995H339.3zM384.5 393.3H400.7V446.3H384.5z"/></g><g><path class="st6" d="M201.6 396.2H217.79999999999998V446.3H201.6zM246.8 385.8H263V446.3H246.8zM292 410.5H308.2V446.3H292zM337.2 373.7H353.4V446.29999999999995H337.2zM382.5 393.3H398.7V446.3H382.5z"/></g></g><g><path class="st0" d="M179 471.1H429.7V473.20000000000005H179z"/></g><g><path class="st0" d="M179 481.3H429.7V483.40000000000003H179z"/></g><g><path class="st0" d="M179 491.6H429.7V493.70000000000005H179z"/></g><g><path class="st0" d="M179 501.8H429.7V503.90000000000003H179z"/></g><g><path class="st6" d="M473.5 352.4c.9-5.5 5.4-9.8 10.9-10.6l-.2-5.1-.5-12.6c-14.7 1.2-26.4 12.7-27.9 27.2l12.6.8 5.1.3z"/><path class="st5" d="M491.1 366.7c-1.5.6-3.1.9-4.8.9-2.9 0-5.6-.9-7.7-2.5l-3.5 3.8-8.5 9.2c5.3 4.5 12.2 7.2 19.7 7.2 4.7 0 9.1-1 13-2.9l-5.9-11.1-2.3-4.6zM516.3 361.3l-12.4-2.1c-1.2 4.6-4 8.4-7.9 10.9l5.9 11.1 2.7 5.2c8.8-5.1 15.3-13.8 17.5-24.1l-5.8-1z"/><path class="st6" d="M468.2 354.9l-12.6-.8-5.9-.4v.9c0 10.1 4.1 19.3 10.7 25.9l4-4.3 8.5-9.2c-2.8-3.2-4.6-7.4-4.7-12.1z"/><path class="st4" d="M495.9 339.3l-2.4 4.6c3.5 2.3 5.7 6.3 5.7 10.8v.8l5.1.9 12.4 2.1c.2-1.3.2-2.5.2-3.8 0-11.3-6.1-21.2-15.2-26.5l-5.8 11.1zM487 336.6c2.3.1 4.4.6 6.4 1.4l5.8-11.2 2.7-5.2c-4.7-2.3-10-3.5-15.7-3.5l.2 5.9.6 12.6z"/></g><g><path class="st0" d="M446.7 407.2H525.1V411.09999999999997H446.7zM446.7 441.5H450.59999999999997V445.4H446.7zM454.4 441.5H525.1V445.4H454.4z"/><path class="st4" d="M446.7 456.1H450.59999999999997V460H446.7z"/><path class="st0" d="M454.4 456.1H525.1V460H454.4z"/><path d="M446.7 470.8H450.59999999999997V474.7H446.7z" style="fill:#6292ff"/><path class="st0" d="M454.4 470.8H525.1V474.7H454.4z"/><path d="M446.7 485.4H450.59999999999997V489.29999999999995H446.7z" style="fill:#da5544"/><path class="st0" d="M454.4 485.4H525.1V489.29999999999995H454.4z"/><path class="st5" d="M446.7 500H450.59999999999997V503.9H446.7z"/><path class="st0" d="M454.4 500H525.1V503.9H454.4zM446.7 417.7H525.1V430.7H446.7z"/></g></g><g><path class="st3" d="M522.8 556.7c.3-.3.7-.5 1.1-.6.4-.1.8-.1 1.3-.1 1-.1 2-.3 2.9-.8.5-.3.9-.6 1.4-.8l2.9.1c.4.4.7 1 .8 1.6.1.5.1 1.1.1 1.6v.6h-10.8v-.6c0-.4 0-.8.3-1z"/><path class="st9" d="M532.7 551.2L532.4 554.5 529.4 554.4 529.2 551.4z"/><path class="st3" d="M494 555.5c.3-.3.7-.4 1.1-.5.4 0 .8 0 1.3.1 1 .1 2.1-.1 3-.5.5-.2 1-.5 1.5-.6l2.9.4c.4.5.5 1.1.6 1.7.1.5 0 1.1-.1 1.6l-.1.6-10.7-1.2.1-.6c0-.4.1-.8.4-1z"/><path class="st4" d="M535.3 503.7c.6-11.4.5-27.5-2.6-36.6 0-.2-23.9 2-23.9 2l-5.6 22.9c-2 8.1-2.9 16.3-2.8 24.6l.3 34.4 4 .3 7.5-45.5c2.8-5.4 5.8-11.6 8.1-17.7l8.7 63.4 4-.2c0-.1 2.3-47.6 2.3-47.6z"/><path class="st9" d="M504.5 551.2L503.8 554.4 500.9 554 501 551z"/><path class="st10" d="M481.6 394.3c.7-.3 1.6 0 1.9.7 2 4 4.2 7.8 6.6 11.5 2.4 3.7 5 7.2 7.8 10.5s5.8 6.4 9.1 9.1c1.6 1.4 3.3 2.7 5 3.9.4.3.9.6 1.3.9l1.3.9c.9.6 1.8 1.1 2.7 1.7.3.2.5.4.8.6.2.2.4.5.6.7.3.5.6 1.1.7 1.8.3 1.3.1 2.7-.7 4-.8 1.3-2 2.1-3.3 2.3-.7.1-1.4.1-2.1 0-.3-.1-.7-.2-1-.3l-.9-.6c-.9-.7-1.8-1.5-2.7-2.3l-1.3-1.2c-.4-.4-.9-.8-1.3-1.2-1.7-1.6-3.4-3.4-4.9-5.1-3.1-3.5-6-7.3-8.5-11.2-2.5-3.9-4.7-8-6.6-12.2-1.9-4.2-3.6-8.4-5.1-12.7-.5-.7-.1-1.5.6-1.8z"/><path class="st2" d="M500.2 434.6l9.4 7.3c2.8 2.2 6.8 1.9 9-.9s1.8-7.2-1.1-9.4l-9.4-7.3-7.9 10.3z"/><path class="st2" d="M521.8 428.5c-9-.1-16 7.9-14.8 16.8l1.8 23.7c10 3.6 17.5 1.6 23.9-2l1.1-25.2c.7-7.1-4.9-13.2-12-13.3z"/><path class="st1" d="M531.8 433.5l-.2.2c1 1.4 1.7 3 2 4.7h.3c-.3-1.7-1-3.4-2.1-4.9zm-9.9 37.3v.3c2.2-.2 4.4-.8 6.6-1.7l-.1-.2c-2.1.8-4.2 1.3-6.5 1.6zm5.1-41.3c-1.6-.8-3.4-1.2-5.2-1.2h-.2c-4.3 0-8.5 1.9-11.3 5.2-1.7 1.9-2.8 4.2-3.3 6.6l.3.1c1.5-6.6 7.4-11.6 14.5-11.5 1.9 0 3.6.5 5.2 1.2v-.4zM508.6 466c-.1 0-.2.1-.3.1l.2 3 .2.1c2.2.8 4.5 1.4 6.6 1.7v-.3c-2.1-.3-4.2-.8-6.5-1.7l-.2-2.9zm-1.8-20.6l.9 12h.3l-.9-12h-.3z"/><path class="st3" d="M524 412.1s6.2 1.5 4.7 8.4c-1 4.6-4.4 7-9.2 7.8l4.5-16.2z"/><path class="st9" d="M517.5 423.7l.5 7.1c2 1.2 4 1.1 5.9-.3l-.5-7.1-5.9.3z"/><path class="st10" d="M517.6 424.6l.1 2.2c.9.5 1.9.7 3 .7h.2c1-.1 2-.5 2.7-1.2l-.1-2.1-5.9.4z"/><path class="st9" d="M514.6 415.4l.4 5.3.1 1.2c.3 2.9 2.7 5.1 5.6 5.1.3 0 .6 0 .9-.1.1 0 .2-.1.3-.1h.1c.4-.2.8-.4 1.1-.8.7-.8 1.1-1.6 1.5-2.5.3-.7.6-1.5.8-2.2.2-.9.4-1.8.2-2.8l-.4-4.6-9-.7-1.6 2.2z"/><path class="st3" d="M523.9 414s-10.3.6-8.2 9.7c0 0-3.2-6.5.1-10.9 3.6-4.8 8.5-3.2 10.2-.9 1.7 2.3 3 6.1-1.8 8.9-.1-.1 1.5-3.5-.3-6.8z"/><path class="st9" d="M523.7 419.5c.1 1.2 1.1 2.1 2.3 2 1.2-.1 2.1-1.1 2-2.3-.1-1.2-1.1-2.1-2.3-2-1.2.1-2.1 1.1-2 2.3z"/><g><path class="st3" d="M503.8 450.8l-7.4-8c4.5-4.2 6.9-9.8 6.9-15.9h10.9c0 9.1-3.8 17.8-10.4 23.9z"/><path class="st4" d="M514.2 427h-10.9c0-12-9.7-21.7-21.7-21.7-2.6 0-5.1.4-7.5 1.3l-3.8-10.2c3.6-1.3 7.4-2 11.3-2 18-.1 32.6 14.6 32.6 32.6z"/><path class="st2" d="M481.6 459.6c-18 0-32.6-14.6-32.6-32.6 0-13.6 8.6-25.9 21.4-30.6l3.8 10.2c-8.5 3.1-14.2 11.3-14.2 20.4 0 12 9.7 21.7 21.7 21.7 5.5 0 10.8-2.1 14.8-5.8l7.4 8c-6.1 5.6-14 8.7-22.3 8.7z"/></g><g><path class="st9" d="M471.1 455.3c0-.8.5-1.5 1.3-1.5 4.4-.5 8.8-1.1 13.1-2.1 4.3-.9 8.5-2.1 12.6-3.5 4.1-1.5 8-3.2 11.8-5.2 1.9-1 3.7-2.1 5.5-3.3.4-.3.9-.6 1.3-.9l1.3-.9c.8-.6 1.7-1.2 2.5-1.9.3-.2.6-.4.8-.5l.9-.3c.6-.1 1.3-.1 1.9 0 1.3.2 2.6.9 3.5 2.1.9 1.2 1.2 2.6 1 3.9-.1.7-.4 1.3-.8 1.9-.2.3-.4.6-.7.8-.3.3-.6.5-.9.7-1 .6-2.1 1.2-3.1 1.7l-1.6.8c-.5.3-1.1.5-1.6.8-2.1 1-4.3 2-6.5 2.8-4.4 1.7-9 3-13.5 3.9-4.6.9-9.2 1.5-13.7 1.9-4.6.3-9.1.4-13.7.3-.8 0-1.4-.7-1.4-1.5z"/><path class="st2" d="M515.5 452.5l10.1-6.2c3.1-1.9 4.3-5.7 2.4-8.8-1.9-3.1-6.1-4.2-9.1-2.3l-10.1 6.2 6.7 11.1z"/><path class="st1" d="M529.1 439.4c-.1-.7-.4-1.4-.8-2-.9-1.5-2.5-2.7-4.3-3.1-.3-.1-.6-.1-.9-.2v.3c2 .3 3.9 1.4 4.9 3.2 1.4 2.3 1.1 5-.5 7l.2.1c1.3-1.5 1.8-3.4 1.4-5.3zm-3.3 7.1s.1 0 .1-.1l-.3-.1-3 1.8.2.2 3-1.8zm-4.2 2.6l-.2-.2-2.9 1.7.2.2 2.9-1.7zm-4.4 2.6l-.2-.2-1.5.9-5.2-8.5-.2.1 5.3 8.8 1.8-1.1zm.2-15.9l-7.4 4.5.1.2 7.4-4.5-.1-.2z"/></g></g><g><path class="st10" d="M234.4 464c0-.8-.5-1.5-1.3-1.6-2.3-.3-4.6-.6-6.9-1-2.3-.4-4.5-.8-6.7-1.3s-4.3-1.2-6.2-2c-1.9-.8-3.7-1.9-5.3-3.1-3.2-2.5-5.7-6-8-9.7-.3-.5-.6-.9-.9-1.4l-.8-1.4c-.6-1-1.1-2-1.7-3-1.1-2-2.2-4-3.2-6.1-1.4-2.6-4.7-3.5-7.2-2s-3.3 4.8-1.7 7.3c1.4 1.9 2.7 3.9 4.1 5.8.7 1 1.4 1.9 2.2 2.9l1.1 1.4c.4.5.8.9 1.1 1.4 1.6 1.9 3.2 3.7 5 5.5 1.8 1.8 3.9 3.4 6.1 4.8 2.3 1.3 4.7 2.3 7.2 3 2.5.7 4.9 1.1 7.3 1.3 2.4.2 4.8.4 7.1.4 2.4.1 4.7.1 7 .1 1 0 1.7-.6 1.7-1.3z"/><path class="st3" d="M190.5 450.4l-6.3-10c-1.9-3-1.3-7 1.8-8.9 3-1.9 7.3-1.1 9.2 2l6.3 10-11 6.9z"/><path class="st9" d="M181.4 505.2L189.7 554.4 192.6 553.9 193.4 504.8z"/><path class="st4" d="M194.2 504.7l-13.6.5c-3.7-9-6.9-28.9-3.1-38.1l15.2 3.4 1.5 34.2z"/><circle transform="rotate(-16.739 184.847 470.406)" class="st4" cx="184.8" cy="470.4" r="7.9"/><g class="st11"><path class="st4" d="M184.8 470.4L184.8 470.4 184.8 470.4 184.8 470.3z"/></g><path class="st9" d="M165.9 503.2L161.1 553.4 164.1 553.6 177.6 505.8z"/><path class="st4" d="M180.4 462.7c-3.2-1-6.5.2-8.5 2.7-.1.2-.3.4-.4.6-5.7 8.3-7.5 27.6-6.3 37l13.2 3 7.3-33.4c1.3-4.2-1.1-8.6-5.3-9.9z"/><path class="st2" d="M180.4 497.1l-1.9 8.9-2.2-.5v.3l2.4.5 2-9.1-.3-.1zm-11.9-25.8c-1.3 3.5-2.4 7.8-3.1 12.8v.3h.3c.6-4.6 1.7-9.1 3.1-12.9l-.3-.2zm-3.9 23.7h.3c0-2.2.2-4.5.4-6.8h-.3c-.3 2.3-.4 4.6-.4 6.8zm.6 8c-.2-1.3-.3-2.8-.3-4.4h-.3c.1 1.6.2 3.1.3 4.4v.2l8 1.8.1-.2-7.8-1.8zm18.6-21.8l-1.7 7.9h.3l1.7-7.9h-.3z"/><path class="st3" d="M170.4 556.6c-.2-.4-.6-.6-1-.7-.4-.1-.8-.1-1.2-.2-1-.2-2-.6-2.8-1.2-.4-.3-.8-.7-1.3-.9l-2.9-.3c-.4.4-.8.9-1 1.5-.2.5-.2 1.1-.3 1.6l-.1.6 10.7 1.2.1-.6c.1-.3 0-.7-.2-1zM199.5 555.1c-.3-.3-.7-.4-1.2-.4-.4 0-.8.1-1.3.1-1 .1-2.1 0-3-.4l-1.5-.6-2.9.5c-.3.5-.5 1.1-.5 1.7 0 .5 0 1.1.1 1.6l.1.6 10.7-1.6-.1-.6c0-.3-.1-.6-.4-.9zM182 428.8c9 .1 15.8 8.2 14.4 17.1l-3.6 24c-6.5 2.3-15.6 1.5-23.1-.7v-27.4c-.5-7.1 5.2-13.1 12.3-13z"/><path class="st1" d="M169.4 457.4v10.4h.3v-10.4h-.3zm12.6-28.8h-.1c-.4 0-.8 0-1.2.1v.3c.4 0 .8-.1 1.3-.1 2.1 0 4 .5 5.8 1.2l.1-.2c-1.8-.9-3.8-1.3-5.9-1.3zm11.3 5.3c-.8-.9-1.7-1.8-2.7-2.5l-.2.2c3.7 2.7 6.1 7.1 6.1 11.9 0 .8-.1 1.6-.2 2.4l-.8 5.3.3.1.8-5.3c.7-4.4-.5-8.8-3.3-12.1zm-.6 36c-5.9 2.1-13.9 1.6-20.9-.1v.3c4 1 8.1 1.5 11.8 1.5 3.5 0 6.6-.5 9.2-1.4l.1-.1 2.1-13.8h-.3l-2 13.6zm-16.9-39.5l-.1-.3c-1.1.6-2.1 1.4-2.9 2.3-2.4 2.5-3.6 5.9-3.3 9.3v6.4h.3v-6.4c-.4-4.7 2.1-9 6-11.3z"/><g><path class="st9" d="M186.2 424.7l-.4 7.3c-2.1 1.1-4 1-5.9-.4l.4-7.3 5.9.4z"/><path class="st10" d="M186.1 426.9v.8c-.9.5-2 .7-3.1.7h-.2c-1-.1-1.9-.5-2.6-1.2l.1-2.1 5.8 1.8z"/><path class="st9" d="M189.3 416.4l-.5 5.2-.1 1.2c-.3 2.9-2.8 5.1-5.7 5-.3 0-.6-.1-.9-.1-.1 0-.2-.1-.3-.1h-.1c-.4-.2-.8-.5-1.1-.8-.6-.8-1-1.6-1.4-2.5-.3-.8-.6-1.5-.8-2.3-.2-.9-.3-1.8-.2-2.8l.2-3.6 9.3-1.5 1.6 2.3z"/><path class="st3" d="M189 424.6s0-3.1-.1-4.6c-.1-1.4-.4-2.8-1.5-2.6-2.1.4-2.9-1.4-2.9-1.4-.6 0-1.2.1-1.9.3-3.1.8-3.6 0-4-.5-.8 2.4-.5 5.5-.5 5.8 0 .1.1.3.1.4.2.8.5 1.5.8 2.3.3.7.6 1.4 1 2v.5c-2.2-.4-4.9-2.8-5.6-4.7-2.3-7.2 1.6-11.5 7.1-12.6 4.8-.9 7.4 3.5 8.4 7.5.8 2.3-.3 7-.9 7.6z"/><path class="st9" d="M180.2 420.3c-.1 1.2-1.1 2.1-2.3 2-1.2-.1-2.1-1.1-2-2.3.1-1.2 1.1-2.1 2.3-2 1.2.1 2 1.1 2 2.3z"/></g><g><path transform="rotate(-180 274.437 454.01)" class="st2" d="M269 446.1H279.8V462H269z"/><path transform="rotate(-180 260.511 447.387)" class="st2" d="M255.1 432.8H265.9V461.90000000000003H255.1z"/><path transform="rotate(-180 246.585 443.424)" class="st4" d="M241.2 424.9H252V461.9H241.2z"/><path transform="rotate(-180 232.659 439.712)" class="st4" d="M227.2 417.5H238V461.9H227.2z"/><path transform="rotate(-180 218.732 441.217)" class="st4" d="M213.3 420.5H224.10000000000002V461.9H213.3z"/><path transform="rotate(-180 204.806 443.424)" class="st2" d="M199.4 424.9H210.20000000000002V461.9H199.4z"/><path transform="rotate(-180 190.88 447.387)" class="st4" d="M185.5 432.8H196.3V461.90000000000003H185.5z"/><g><path transform="rotate(-180 232.659 462.663)" class="st3" d="M183.1 461.9H282.3V463.4H183.1z"/></g></g><g><path class="st9" d="M227.5 461.9c-.1-.8-.7-1.4-1.5-1.4h-6.9c-2.3-.1-4.6-.2-6.8-.4s-4.4-.6-6.4-1.1c-2-.6-3.9-1.3-5.7-2.4-3.5-2.1-6.5-5.1-9.3-8.5-.4-.4-.7-.8-1.1-1.3l-1-1.3c-.7-.9-1.4-1.8-2-2.7-1.4-1.8-2.7-3.7-4-5.6-1.7-2.3-5.1-2.8-7.4-.9-2.3 1.8-2.6 5.3-.6 7.5 1.6 1.7 3.2 3.4 4.9 5.2.8.9 1.7 1.7 2.5 2.6l1.3 1.3c.4.4.9.8 1.3 1.2 1.8 1.7 3.7 3.3 5.8 4.8 2.1 1.5 4.3 2.8 6.7 3.9 2.4 1 5 1.7 7.5 2 2.5.3 5 .4 7.4.3 2.4-.1 4.8-.3 7.1-.6s4.7-.6 7-.9c.7-.3 1.2-1 1.2-1.7z"/><path class="st3" d="M181.9 454.2l-7.7-9c-2.3-2.7-2.2-6.7.5-9.1 2.7-2.3 7.1-2.1 9.4.7l7.7 9-9.9 8.4z"/><path class="st1" d="M179.6 434.3c-1.2-.1-2.3.1-3.4.6l.1.2c2.6-1.2 5.9-.6 7.8 1.7l.7.8.2-.2-.7-.8c-1.1-1.3-2.8-2.2-4.7-2.3zm12.2 11.6l-8.1 6.8.2.2 8.3-7-4.4-5.2-.2.2 4.2 5zm-18-9.1c-1.8 2.1-1.9 5.2-.4 7.7l.2-.1c-1.4-2.3-1.4-5.3.3-7.4l-.1-.2zm7.4 17l.2-.2-3.7-4.4-.2.2 3.7 4.4z"/></g></g><g><path class="st3" d="M630.9 587.7H74.2c-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9H631c1.6 0 2.9 1.3 2.9 2.9-.1 1.6-1.4 2.9-3 2.9z"/></g><g><path transform="rotate(-40.957 194.403 297.627)" class="st2" d="M179.5 288.7H209.2V306.4H179.5z"/><path transform="rotate(-40.957 148.955 337.083)" class="st4" d="M103.6 323.8H194.2V350.40000000000003H103.6z"/><path class="st4" d="M294.2 300.4c28.1-24.4 31.2-67.2 6.7-95.3-24.4-28.1-67.2-31.2-95.3-6.7-25.9 22.5-30.5 60.4-12.1 88.2 1.6 2.4 3.4 4.8 5.4 7.1 2 2.3 4.1 4.4 6.2 6.3 25 22.1 63.3 22.9 89.1.4zm-76.9-88.6c20.7-18 52.3-15.8 70.3 5s15.8 52.3-5 70.3-52.3 15.8-70.3-5-15.8-52.3 5-70.3z"/><g style="opacity:.5"><path class="st2" d="M212.3 282.1c-18-20.8-15.8-52.3 5-70.3 20.7-18 52.3-15.8 70.3 5s15.8 52.3-5 70.3c-20.7 17.9-52.3 15.7-70.3-5z"/></g><g><path class="st1" d="M263.6 217c.2-.4.4-.7.8-1 1-.8 2.5-.5 3.2.5l20.8 28.3c.8 1 .5 2.5-.5 3.2-1 .8-2.5.5-3.2-.5l-20.8-28.3c-.5-.6-.6-1.5-.3-2.2zM252.5 225.2c.2-.4.4-.7.8-1 1-.8 2.5-.5 3.2.5l20.8 28.3c.8 1 .5 2.5-.5 3.2-1 .8-2.5.5-3.2-.5l-20.8-28.3c-.5-.6-.6-1.5-.3-2.2z"/></g></g><g><path class="st3" d="M410 551.8l-12.9 6.5c-.2-.4-.3-.9-.2-1.4.1-.6.5-1 .9-1.3.5-.3 1-.6 1.5-.8 1.2-.7 2.2-1.6 3-2.8.4-.6.7-1.2 1.2-1.8l3.6-1.7c.7.3 1.4.8 1.9 1.4.4.5.7 1.2 1 1.9zM422.6 556.4l-14.4 1.9c-.1-.5 0-1 .2-1.4.3-.5.8-.8 1.3-1 .5-.2 1.1-.2 1.7-.3 1.4-.2 2.6-.8 3.7-1.6.6-.4 1.1-.9 1.7-1.3l3.9-.4c.6.5 1.1 1.2 1.3 2 .4.7.5 1.4.6 2.1zM416.5 508.6L416.5 508.6 416.5 508.6z"/><g class="st11"><path class="st3" d="M414.6 478.3L414.6 478.3 414.6 478.3 414.6 478.3z"/></g><path class="st3" d="M416.5 508.6L416.5 508.6 416.5 508.6zM416.5 508.6L416.5 508.6 416.5 508.6z"/><path class="st2" d="M384.1 510.1l18.8 40.3 4.7-1.9-12-37.6 9.7-15.3 11 57.2 5.1-.3.1-73.2c.1-.7-30.9-2.6-30.9-2.6l-6.8 30.4c-.1 1.1 0 2 .3 3zm32.4-1.5z"/><g class="st11"><path class="st3" d="M416.5 508.6L416.5 508.6 416.5 508.6z"/></g><path class="st10" d="M352.8 484.7c1.5-1.5 3-2.8 4.5-4.2.4-.3.7-.7 1.1-1 .4-.4.7-.7 1.1-1l1-1.1.5-.5.5-.5c2.7-2.9 5.1-6 7.3-9.3 1-1.7 2.1-3.3 3.1-5l.7-1.3c.1-.2.2-.4.4-.6l.3-.7 1.3-2.6c.1-.2.2-.4.3-.7l.3-.7.6-1.3.6-1.3.3-.7.2-.3.1-.3 1.1-2.7c.4-.9.7-1.8 1.1-2.8.4-1.2 1.4-2 2.6-2.4 1.2-.4 2.6-.4 3.9.2 1.3.6 2.3 1.6 2.8 2.7.5 1.2.5 2.5-.1 3.7-.5.9-1 1.8-1.6 2.8l-1.6 2.7-.2.3-.2.3-.4.7-.9 1.3-.9 1.3-.4.7c-.1.2-.3.4-.5.7l-1.8 2.6-.5.6c-.2.2-.3.4-.5.6l-1 1.3c-1.3 1.7-2.7 3.3-4.1 4.9-2.9 3.1-6 6.1-9.2 8.7l-.6.5-.6.5-1.3.9c-.4.3-.8.6-1.3.9-.4.3-.8.6-1.3.9-1.7 1.2-3.4 2.3-5 3.4-.5.4-1.3.3-1.9-.3-.3-.6-.3-1.4.2-1.9z"/><path class="st4" d="M383.8 465.5l5.6-12.2c1.7-3.7.4-8-3.3-9.7-3.7-1.7-8.4-.1-10 3.6l-5.6 12.2 13.3 6.1z"/><g><path class="st4" d="M389.8 435.7c-7.7 1.9-12.2 9.9-9.6 17.5l11.9 36.1c13.9 1.7 20.3-2.7 29.7-9.7l-12.4-33.5c-3-7.9-11.4-12.4-19.6-10.4z"/></g><g><path class="st1" d="M403.3 438.2c1.4 1 2.7 2.2 3.8 3.7l.3-.3c-1.1-1.4-2.4-2.7-3.8-3.7l-.3.3zm16 43.1l.2.3c.8-.6 1.5-1.1 2.3-1.7l.2-.2-3.2-8.7-.4.1 3.1 8.5c-.6.5-1.4 1.1-2.2 1.7zm-27.6 8.3h.3c2.7.3 5.1.5 7.3.4l-.1-.4c-2.2.1-4.5 0-7.2-.3l-7-21.2-.4.1 7.1 21.4zm20.6-3.7c-1 .5-1.9 1-3 1.4l.2.4c1.1-.5 2.1-1 3.1-1.5l-.3-.3zm2.1-26l.4-.2-3-8-.4.2 3 8zm-32.6-.2l.4-.1-2.1-6.5c-2.3-6.8 1.2-14.1 7.6-16.8.3-.1.6-.3 1-.4l-.2-.4-.9.3c-6.8 2.8-10.3 10.4-7.9 17.4l2.1 6.5z"/></g><g><path class="st4" d="M353.2 491.4c8.2 7.9 20.6 10.6 31.7 6l-11.3-26.9-20.4 20.9z"/><path class="st3" d="M373.6 470.4l29.2-1.4c-.2-3.3-.9-6.7-2.3-9.9-2.7-6.4-7.4-11.3-13.1-14.4l-13.8 25.7zM362.2 443.5l11.3 26.9 13.9-25.7c-7.4-4-16.7-4.8-25.2-1.2z"/><path class="st3" d="M373.6 470.4l11.3 26.9c11.6-4.9 18.4-16.4 17.8-28.3l-29.1 1.4z"/><path class="st4" d="M346.7 481.8c1.6 3.7 3.8 7 6.6 9.6l20.4-21-29-3.4c-.7 4.9-.1 9.9 2 14.8z"/></g><g><path class="st9" d="M371.3 467.3c.5-.6 1.3-.7 1.9-.3 1.8 1.2 3.7 2.4 5.6 3.4.9.5 1.9 1 2.9 1.4 1 .4 1.9.8 2.9 1.1 1 .3 1.9.5 2.8.5h1.2c.4 0 .8-.1 1.1-.2.3-.1.6-.3.9-.4.3-.2.5-.4.8-.6.2-.2.5-.5.7-.8.2-.3.4-.6.6-1 .4-.7.7-1.6 1-2.5.3-.9.5-1.8.7-2.8.4-2 .6-4 .7-6.1.1-2.1.2-4.2.2-6.4 0-2.1-.1-4.3-.2-6.5 0-1.4.5-2.6 1.5-3.6.9-.9 2.2-1.5 3.7-1.5 1.4 0 2.7.6 3.7 1.6.9 1 1.4 2.3 1.3 3.7-.2 2.3-.4 4.6-.8 6.8-.3 2.3-.7 4.6-1.1 6.9-.5 2.3-1 4.6-1.8 7-.4 1.2-.8 2.3-1.4 3.5-.6 1.2-1.2 2.3-2 3.4-.4.6-.9 1.1-1.4 1.6-.5.5-1.1 1-1.7 1.4-.6.4-1.3.8-2.1 1.1-.7.3-1.5.5-2.2.6-.7.1-1.5.1-2.2.1h-.6l-.5-.1c-.3-.1-.7-.1-1-.2-1.3-.3-2.5-.7-3.6-1.2s-2.2-1.1-3.2-1.7c-1-.6-2-1.3-2.9-2-1.9-1.4-3.6-2.8-5.3-4.3-.6-.5-.7-1.3-.2-1.9z"/><path class="st4" d="M406.8 461.8l.4-13.4c.1-4.1-2.8-7.6-6.8-7.7-4.1-.1-7.7 3.2-7.9 7.2l-.4 13.4 14.7.5z"/><path class="st1" d="M392.2 449.3h.4V448c0-.5.1-.9.2-1.4l-.4-.1c-.1.5-.2 1-.2 1.5v1.3zm11.3 12.8l3.7.1.1-4.1-.4-.1-.1 3.8-3.3-.1v.4zm3.7-11.4l-.2 4.9h.4l.2-5-.4.1zm-12.7-7.9l.4.1c1.5-1.4 3.4-2.2 5.5-2.2 1.7.1 3.3.7 4.4 1.8l.2-.3c-1.3-1.2-2.9-1.8-4.6-1.9-1.1 0-2.2.2-3.3.6-1 .5-1.9 1.1-2.6 1.9zm-2.6 15.2l.4.1.1-3.4h-.4l-.1 3.3zm4.5 3.9l3.4.1v-.4l-3.3-.1-.1.4z"/></g><g><path class="st9" d="M383 434.5l4.8 8.4c2.5.2 4.3-.9 5.5-3.1l-4.8-8.4-5.5 3.1z"/><path class="st10" d="M383 434.5l2.2 3.8c.5-.1.9-.2 1.4-.4.1-.1.3-.1.4-.2 1.5-.9 2.5-2.4 2.8-4l-1.3-2.3-5.5 3.1z"/><path class="st9" d="M377.6 430.8l2.1 3.5.9 1.4c1.2 1.9 3.7 2.7 5.7 1.7.7-.3 1.3-.8 1.7-1.3.1-.1.2-.3.3-.4.1-.1.1-.2.2-.3.5-.9.8-1.8.7-2.9-.1-.9-.2-1.8-.3-2.8-.1-.6-.2-1.1-.3-1.7-.5-2.5-2.3-4.6-4.7-5.3-2.1-.6-4-.1-5.6 1.6-1.7 1.8-2 4.4-.7 6.5z"/><path class="st3" d="M385.7 429.1h-.8s0-3.2-.8-3.9c-1.2-1-4.5.3-5.9 1.4-.4.4-.7.7-.7 1.3.1 1.2.5 3.5 1.7 5.5 0 0-5-5.2-4.5-9.4.3-2.8.8-4.8 4.3-4.8 5.5 0 9.6 2.7 11.2 8.4l-3.5.2-1 1.3z"/><g><path class="st9" d="M385.9 429.5c.6 1 2 1.3 3.1.7s1.6-2 1-3c-.6-1-2-1.3-3.1-.7-1.2.6-1.6 2-1 3z"/></g></g></g><g><path class="st5" d="M305 499.7H375.1V558.3H305z"/><path class="st13" d="M281.2 499.7H305V558.3H281.2z"/><path class="st13" d="M305 499.7L295.6 517.6 269.4 517.6 281.2 499.7zM386 519.6L316 524.1 305 499.7 375.1 504.2z"/><path class="st5" d="M386 519.6L316 519.6 305 499.7 375.1 499.7zM305 499.7L299.7 519.7 269.4 517.6 295.6 517.6z"/></g><g><path class="st0" d="M38.9 241.8c3.5-18.6 10.8-36.5 20.7-52.7 5-8.1 10.7-15.8 17.1-22.9 3.2-3.6 6.5-7 10-10.3 3.5-3.3 7.1-6.4 10.8-9.4 15-11.9 32.3-20.9 50.6-26.7 9.2-2.9 18.6-4.9 28.1-6.1 2.4-.3 4.8-.5 7.1-.8l3.6-.3c1.2-.1 2.4-.1 3.6-.2 4.8-.2 9.6-.2 14.4 0 4.8.2 9.6.7 14.3 1.3 4.8.6 9.5 1.5 14.2 2.5 2.3.5 4.7 1.1 7 1.7l3.5 1c1.2.3 2.3.7 3.4 1.1.6.2 1.1.4 1.7.5l1.7.6c1.1.4 2.3.8 3.4 1.2 1.1.4 2.2.8 3.4 1.3l3.3 1.4c.6.2 1.1.5 1.7.7l1.6.7 3.3 1.5 3.2 1.6 1.6.8 1.6.8 3.2 1.7 3.1 1.7 1.6.9 1.5.9 3.1 1.8c4.1 2.4 8.1 4.9 12.1 7.5 4 2.6 7.9 5.2 11.9 7.9 7.8 5.3 15.6 10.7 23.5 15.9 3.9 2.6 7.9 5.1 11.9 7.6 4 2.4 8.1 4.8 12.2 7.1 2 1.2 4.1 2.2 6.2 3.3 1 .6 2.1 1 3.2 1.6 1.1.5 2.1 1.1 3.2 1.5 2.1 1 4.3 2 6.5 2.8 1.1.4 2.2.9 3.3 1.3l3.3 1.2 3.3 1.2c1.1.4 2.2.8 3.4 1.1l3.4 1c.6.2 1.1.3 1.7.5l1.7.4c1.1.3 2.3.6 3.4.8l3.5.7c.6.1 1.2.2 1.7.3l1.7.3 3.5.5c-9.4-.8-18.8-2.7-27.8-5.6-9-2.9-17.8-6.7-26.3-11-4.3-2.1-8.4-4.4-12.5-6.8-4.1-2.4-8.2-4.8-12.2-7.3s-8-5.1-12-7.6l-11.9-7.7c-4-2.6-7.9-5.1-11.9-7.6s-8-4.9-12.1-7.3l-3.1-1.7-1.5-.9-1.5-.8-3.1-1.7-3.1-1.6-1.6-.8-1.6-.8-3.2-1.5-3.2-1.4-1.6-.7c-.5-.2-1.1-.4-1.6-.7-17.2-7.2-35.7-11.2-54.3-11.9-18.6-.8-37.4 1.5-55.2 6.9-4.5 1.3-8.9 2.9-13.2 4.6-4.3 1.7-8.6 3.7-12.7 5.8-8.3 4.2-16.2 9.2-23.7 14.8-7.4 5.7-14.4 11.9-20.8 18.8-6.4 6.8-12.2 14.2-17.4 22-10.6 15.9-18.3 33.3-22.9 51.7z"/></g><g><path class="st0" d="M658 370.2c6.5 13.9 10.3 29.1 11.5 44.5 1.1 15.4-.4 31.1-4.6 46.1-4.2 14.9-11.2 29.1-20.3 41.6-9.1 12.5-20.3 23.5-33.2 31.9 11.9-9.7 22.3-21 30.7-33.6 8.4-12.6 14.9-26.4 19-41 4.1-14.5 5.9-29.7 5.3-44.9-.4-15.1-3.3-30.2-8.4-44.6z"/></g><g><path class="st1" d="M639.8 422.2c.4 9.5-.9 19.2-3.6 28.3-1.4 4.6-3.1 9.1-5.2 13.4-2.1 4.3-4.6 8.5-7.3 12.4-2.8 3.9-5.9 7.6-9.2 11.1-3.4 3.4-7 6.6-10.9 9.4-7.7 5.7-16.4 10.1-25.5 12.9 8.8-3.5 17.1-8.3 24.6-14.1 3.7-2.9 7.2-6.1 10.5-9.5 3.3-3.4 6.3-7 9-10.9 2.7-3.8 5.1-7.9 7.3-12.1 2.1-4.2 3.9-8.6 5.4-13.1 2.9-8.8 4.5-18.2 4.9-27.8z"/></g></svg>
3 \ No newline at end of file 3 \ No newline at end of file
yudao-ui-admin-vue3/src/assets/svgs/shopping.svg
1 -<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M42.913 101.36c1.642 0 3.198.332 4.667.996a12.28 12.28 0 0 1 3.89 2.772c1.123 1.184 1.987 2.582 2.592 4.193.605 1.612.908 3.318.908 5.118 0 1.8-.303 3.507-.908 5.118-.605 1.611-1.469 3.01-2.593 4.194a13.3 13.3 0 0 1-3.889 2.843 10.582 10.582 0 0 1-4.667 1.066c-1.729 0-3.306-.355-4.732-1.066a13.604 13.604 0 0 1-3.825-2.843c-1.123-1.185-1.988-2.583-2.593-4.194a14.437 14.437 0 0 1-.907-5.118c0-1.8.302-3.506.907-5.118.605-1.61 1.47-3.009 2.593-4.193a12.515 12.515 0 0 1 3.825-2.772c1.426-.664 3.003-.996 4.732-.996zm53.932.285c1.643 0 3.22.331 4.733.995a11.386 11.386 0 0 1 3.889 2.772c1.08 1.185 1.945 2.583 2.593 4.194.648 1.61.972 3.317.972 5.118 0 1.8-.324 3.506-.972 5.117-.648 1.611-1.513 3.01-2.593 4.194a12.253 12.253 0 0 1-3.89 2.843 11 11 0 0 1-4.732 1.066 10.58 10.58 0 0 1-4.667-1.066 12.478 12.478 0 0 1-3.824-2.843c-1.08-1.185-1.945-2.583-2.593-4.194a13.581 13.581 0 0 1-.973-5.117c0-1.801.325-3.507.973-5.118.648-1.611 1.512-3.01 2.593-4.194a11.559 11.559 0 0 1 3.824-2.772 11.212 11.212 0 0 1 4.667-.995zm21.781-80.747c2.42 0 4.3.355 5.64 1.066 1.34.71 2.29 1.587 2.852 2.63a6.427 6.427 0 0 1 .778 3.34c-.044 1.185-.195 2.204-.454 3.057-.26.853-.8 2.606-1.62 5.26a589.268 589.268 0 0 1-2.788 8.743 1236.373 1236.373 0 0 0-3.047 9.453c-.994 3.128-1.75 5.592-2.269 7.393-1.123 3.79-2.55 6.42-4.278 7.89-1.728 1.469-3.846 2.203-6.352 2.203H39.023l1.945 12.795h65.342c4.148 0 6.223 1.943 6.223 5.828 0 1.896-.41 3.53-1.232 4.905-.821 1.374-2.442 2.061-4.862 2.061H38.505c-1.729 0-3.176-.426-4.343-1.28-1.167-.852-2.14-1.966-2.917-3.34a21.277 21.277 0 0 1-1.88-4.478 44.128 44.128 0 0 1-1.102-4.55c-.087-.568-.324-1.942-.713-4.122-.39-2.18-.865-4.904-1.426-8.174l-1.88-10.947c-.692-4.027-1.383-8.079-2.075-12.154-1.642-9.572-3.5-20.234-5.574-31.986H6.87c-1.296 0-2.377-.356-3.24-1.067a9.024 9.024 0 0 1-2.14-2.558 10.416 10.416 0 0 1-1.167-3.2C.108 8.53 0 7.488 0 6.54c0-1.896.583-3.46 1.75-4.69C2.917.615 4.494 0 6.482 0h13.095c1.728 0 3.111.284 4.148.853 1.037.569 1.858 1.28 2.463 2.132a8.548 8.548 0 0 1 1.297 2.701c.26.948.475 1.754.648 2.417.173.758.346 1.825.519 3.199.173 1.374.345 2.772.518 4.193.26 1.706.519 3.507.778 5.403h88.678z"/></svg>  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M42.913 101.36c1.642 0 3.198.332 4.667.996a12.28 12.28 0 013.89 2.772c1.123 1.184 1.987 2.582 2.592 4.193.605 1.612.908 3.318.908 5.118 0 1.8-.303 3.507-.908 5.118-.605 1.611-1.469 3.01-2.593 4.194a13.3 13.3 0 01-3.889 2.843 10.582 10.582 0 01-4.667 1.066c-1.729 0-3.306-.355-4.732-1.066a13.604 13.604 0 01-3.825-2.843c-1.123-1.185-1.988-2.583-2.593-4.194a14.437 14.437 0 01-.907-5.118c0-1.8.302-3.506.907-5.118.605-1.61 1.47-3.009 2.593-4.193a12.515 12.515 0 013.825-2.772c1.426-.664 3.003-.996 4.732-.996zm53.932.285c1.643 0 3.22.331 4.733.995a11.386 11.386 0 013.889 2.772c1.08 1.185 1.945 2.583 2.593 4.194.648 1.61.972 3.317.972 5.118 0 1.8-.324 3.506-.972 5.117-.648 1.611-1.513 3.01-2.593 4.194a12.253 12.253 0 01-3.89 2.843 11 11 0 01-4.732 1.066 10.58 10.58 0 01-4.667-1.066 12.478 12.478 0 01-3.824-2.843c-1.08-1.185-1.945-2.583-2.593-4.194a13.581 13.581 0 01-.973-5.117c0-1.801.325-3.507.973-5.118.648-1.611 1.512-3.01 2.593-4.194a11.559 11.559 0 013.824-2.772 11.212 11.212 0 014.667-.995zm21.781-80.747c2.42 0 4.3.355 5.64 1.066 1.34.71 2.29 1.587 2.852 2.63a6.427 6.427 0 01.778 3.34c-.044 1.185-.195 2.204-.454 3.057-.26.853-.8 2.606-1.62 5.26a589.268 589.268 0 01-2.788 8.743 1236.373 1236.373 0 00-3.047 9.453c-.994 3.128-1.75 5.592-2.269 7.393-1.123 3.79-2.55 6.42-4.278 7.89-1.728 1.469-3.846 2.203-6.352 2.203H39.023l1.945 12.795h65.342c4.148 0 6.223 1.943 6.223 5.828 0 1.896-.41 3.53-1.232 4.905-.821 1.374-2.442 2.061-4.862 2.061H38.505c-1.729 0-3.176-.426-4.343-1.28-1.167-.852-2.14-1.966-2.917-3.34a21.277 21.277 0 01-1.88-4.478 44.128 44.128 0 01-1.102-4.55c-.087-.568-.324-1.942-.713-4.122-.39-2.18-.865-4.904-1.426-8.174l-1.88-10.947c-.692-4.027-1.383-8.079-2.075-12.154-1.642-9.572-3.5-20.234-5.574-31.986H6.87c-1.296 0-2.377-.356-3.24-1.067a9.024 9.024 0 01-2.14-2.558 10.416 10.416 0 01-1.167-3.2C.108 8.53 0 7.488 0 6.54c0-1.896.583-3.46 1.75-4.69C2.917.615 4.494 0 6.482 0h13.095c1.728 0 3.111.284 4.148.853 1.037.569 1.858 1.28 2.463 2.132a8.548 8.548 0 011.297 2.701c.26.948.475 1.754.648 2.417.173.758.346 1.825.519 3.199.173 1.374.345 2.772.518 4.193.26 1.706.519 3.507.778 5.403h88.678z"/></svg>
3 \ No newline at end of file 3 \ No newline at end of file
yudao-ui-admin-vue3/src/components/Dialog/src/Dialog.vue
@@ -94,8 +94,8 @@ const dialogStyle = computed(() =&gt; { @@ -94,8 +94,8 @@ const dialogStyle = computed(() =&gt; {
94 94
95 <style lang="less"> 95 <style lang="less">
96 .@{elNamespace}-dialog__header { 96 .@{elNamespace}-dialog__header {
97 - border-bottom: 1px solid var(--tags-view-border-color);  
98 margin-right: 0 !important; 97 margin-right: 0 !important;
  98 + border-bottom: 1px solid var(--tags-view-border-color);
99 } 99 }
100 100
101 .@{elNamespace}-dialog__footer { 101 .@{elNamespace}-dialog__footer {
yudao-ui-admin-vue3/src/components/Form/src/Form.vue
@@ -293,7 +293,7 @@ export default defineComponent({ @@ -293,7 +293,7 @@ export default defineComponent({
293 293
294 <style lang="less" scoped> 294 <style lang="less" scoped>
295 .@{elNamespace}-form.@{namespace}-form .@{elNamespace}-row { 295 .@{elNamespace}-form.@{namespace}-form .@{elNamespace}-row {
296 - margin-left: 0 !important;  
297 margin-right: 0 !important; 296 margin-right: 0 !important;
  297 + margin-left: 0 !important;
298 } 298 }
299 </style> 299 </style>
yudao-ui-admin-vue3/src/components/Logo/src/Logo.vue
@@ -55,34 +55,31 @@ watch( @@ -55,34 +55,31 @@ watch(
55 </script> 55 </script>
56 56
57 <template> 57 <template>
58 - <div>  
59 - <router-link 58 + <router-link
  59 + :class="[
  60 + prefixCls,
  61 + layout !== 'classic' ? `${prefixCls}__Top` : '',
  62 + 'flex !h-[var(--logo-height)] items-center cursor-pointer pl-8px relative',
  63 + 'dark:bg-[var(--el-bg-color)]'
  64 + ]"
  65 + to="/"
  66 + >
  67 + <img
  68 + src="@/assets/imgs/logo.png"
  69 + class="w-[calc(var(--logo-height)-10px)] h-[calc(var(--logo-height)-10px)]"
  70 + />
  71 + <div
  72 + v-if="show"
60 :class="[ 73 :class="[
61 - prefixCls,  
62 - layout !== 'classic' ? `${prefixCls}__Top` : '',  
63 - 'flex !h-[var(--logo-height)] items-center cursor-pointer pl-8px relative',  
64 - 'dark:bg-[var(--el-bg-color)]' 74 + 'ml-10px text-16px font-700',
  75 + {
  76 + 'text-[var(--logo-title-text-color)]': layout === 'classic',
  77 + 'text-[var(--top-header-text-color)]':
  78 + layout === 'topLeft' || layout === 'top' || layout === 'cutMenu'
  79 + }
65 ]" 80 ]"
66 - to="/"  
67 > 81 >
68 - <img  
69 - src="@/assets/imgs/logo.png"  
70 - class="w-[calc(var(--logo-height)-10px)] h-[calc(var(--logo-height)-10px)]"  
71 - alt=""  
72 - />  
73 - <div  
74 - v-if="show"  
75 - :class="[  
76 - 'ml-10px text-16px font-700',  
77 - {  
78 - 'text-[var(--logo-title-text-color)]': layout === 'classic',  
79 - 'text-[var(--top-header-text-color)]':  
80 - layout === 'topLeft' || layout === 'top' || layout === 'cutMenu'  
81 - }  
82 - ]"  
83 - >  
84 - {{ title }}  
85 - </div>  
86 - </router-link>  
87 - </div> 82 + {{ title }}
  83 + </div>
  84 + </router-link>
88 </template> 85 </template>
yudao-ui-admin-vue3/src/components/Table/src/Table.vue
@@ -13,7 +13,7 @@ export default defineComponent({ @@ -13,7 +13,7 @@ export default defineComponent({
13 pageSize: propTypes.number.def(10), 13 pageSize: propTypes.number.def(10),
14 currentPage: propTypes.number.def(1), 14 currentPage: propTypes.number.def(1),
15 // 是否多选 15 // 是否多选
16 - selection: propTypes.bool.def(true), 16 + selection: propTypes.bool.def(false),
17 // 是否所有的超出隐藏,优先级低于schema中的showOverflowTooltip, 17 // 是否所有的超出隐藏,优先级低于schema中的showOverflowTooltip,
18 showOverflowTooltip: propTypes.bool.def(true), 18 showOverflowTooltip: propTypes.bool.def(true),
19 // 表头 19 // 表头
@@ -294,9 +294,3 @@ export default defineComponent({ @@ -294,9 +294,3 @@ export default defineComponent({
294 } 294 }
295 }) 295 })
296 </script> 296 </script>
297 -<style lang="less" scoped>  
298 -:deep(.el-button.is-text) {  
299 - margin-left: 0;  
300 - padding: 8px 10px;  
301 -}  
302 -</style>  
yudao-ui-admin-vue3/src/components/TagsView/src/TagsView.vue
@@ -84,7 +84,7 @@ const refreshSelectedTag = async (view?: RouteLocationNormalizedLoaded) =&gt; { @@ -84,7 +84,7 @@ const refreshSelectedTag = async (view?: RouteLocationNormalizedLoaded) =&gt; {
84 tagsViewStore.delCachedView() 84 tagsViewStore.delCachedView()
85 const { path, query } = view 85 const { path, query } = view
86 await nextTick() 86 await nextTick()
87 - await replace({ 87 + replace({
88 path: '/redirect' + path, 88 path: '/redirect' + path,
89 query: query 89 query: query
90 }) 90 })
@@ -107,7 +107,15 @@ const toLastView = () =&gt; { @@ -107,7 +107,15 @@ const toLastView = () =&gt; {
107 if (latestView) { 107 if (latestView) {
108 push(latestView) 108 push(latestView)
109 } else { 109 } else {
110 - push('/') 110 + if (
  111 + unref(currentRoute).path === permissionStore.getAddRouters[0].path ||
  112 + unref(currentRoute).path === permissionStore.getAddRouters[0].redirect
  113 + ) {
  114 + addTags()
  115 + return
  116 + }
  117 + // You can set another route
  118 + push(permissionStore.getAddRouters[0].path)
111 } 119 }
112 } 120 }
113 121
yudao-ui-admin-vue3/src/components/UserInfo/src/UserInfo.vue
@@ -22,9 +22,9 @@ const { push, replace } = useRouter() @@ -22,9 +22,9 @@ const { push, replace } = useRouter()
22 22
23 const user = wsCache.get('user') 23 const user = wsCache.get('user')
24 24
25 -const avatar = user ? user.user.avatar : '@/assets/imgs/avatar.gif' 25 +const avatar = user?.user?.avatar ? user.user.avatar : '@/assets/imgs/avatar.gif'
26 26
27 -const userName = user ? user.user.nickname : 'Admin' 27 +const userName = user?.user?.nickname ? user.user.nickname : 'Admin'
28 28
29 const loginOut = () => { 29 const loginOut = () => {
30 ElMessageBox.confirm(t('common.loginOutMessage'), t('common.reminder'), { 30 ElMessageBox.confirm(t('common.loginOutMessage'), t('common.reminder'), {
@@ -38,7 +38,6 @@ const loginOut = () =&gt; { @@ -38,7 +38,6 @@ const loginOut = () =&gt; {
38 removeToken() 38 removeToken()
39 tagsViewStore.delAllViews() 39 tagsViewStore.delAllViews()
40 replace('/login') 40 replace('/login')
41 - // }  
42 }) 41 })
43 .catch(() => {}) 42 .catch(() => {})
44 } 43 }
yudao-ui-admin-vue3/src/config/axios/Axios.ts deleted
1 -import type { AxiosRequestConfig, AxiosInstance, AxiosResponse, AxiosError } from 'axios'  
2 -import type { RequestOptions, RequestResult, UploadFileParams } from 'types/axios'  
3 -import type { CreateAxiosOptions } from './axiosTransform'  
4 -import axios from 'axios'  
5 -import qs from 'qs'  
6 -import { AxiosCanceler } from './axiosCancel'  
7 -import { isFunction } from '@/utils/is'  
8 -import { cloneDeep } from 'lodash-es'  
9 -import { ContentTypeEnum } from '@/enums/http.enum'  
10 -import { RequestEnum } from '@/enums/http.enum'  
11 -import { downloadByData } from '@/utils/filt'  
12 -  
13 -export * from './axiosTransform'  
14 -  
15 -/**  
16 - * @description: axios module  
17 - */  
18 -export class VAxios {  
19 - private axiosInstance: AxiosInstance  
20 - private readonly options: CreateAxiosOptions  
21 -  
22 - constructor(options: CreateAxiosOptions) {  
23 - this.options = options  
24 - this.axiosInstance = axios.create(options)  
25 - this.setupInterceptors()  
26 - }  
27 -  
28 - /**  
29 - * @description: Create axios instance  
30 - */  
31 - private createAxios(config: CreateAxiosOptions): void {  
32 - this.axiosInstance = axios.create(config)  
33 - }  
34 -  
35 - private getTransform() {  
36 - const { transform } = this.options  
37 - return transform  
38 - }  
39 -  
40 - getAxios(): AxiosInstance {  
41 - return this.axiosInstance  
42 - }  
43 -  
44 - /**  
45 - * @description: Reconfigure axios  
46 - */  
47 - configAxios(config: CreateAxiosOptions) {  
48 - if (!this.axiosInstance) {  
49 - return  
50 - }  
51 - this.createAxios(config)  
52 - }  
53 -  
54 - /**  
55 - * @description: Set general header  
56 - */  
57 - setHeader(headers: any): void {  
58 - if (!this.axiosInstance) {  
59 - return  
60 - }  
61 - Object.assign(this.axiosInstance.defaults.headers, headers)  
62 - }  
63 -  
64 - /**  
65 - * @description: Interceptor configuration  
66 - */  
67 - private setupInterceptors() {  
68 - const transform = this.getTransform()  
69 - if (!transform) {  
70 - return  
71 - }  
72 - const {  
73 - requestInterceptors,  
74 - requestInterceptorsCatch,  
75 - responseInterceptors,  
76 - responseInterceptorsCatch  
77 - } = transform  
78 -  
79 - const axiosCanceler = new AxiosCanceler()  
80 -  
81 - // Request interceptor configuration processing  
82 - this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {  
83 - // If cancel repeat request is turned on, then cancel repeat request is prohibited  
84 - const {  
85 - // @ts-ignore  
86 - headers: { ignoreCancelToken }  
87 - } = config  
88 -  
89 - const ignoreCancel =  
90 - ignoreCancelToken !== undefined  
91 - ? ignoreCancelToken  
92 - : this.options.requestOptions?.ignoreCancelToken  
93 -  
94 - !ignoreCancel && axiosCanceler.addPending(config)  
95 - if (requestInterceptors && isFunction(requestInterceptors)) {  
96 - config = requestInterceptors(config, this.options)  
97 - }  
98 - return config  
99 - }, undefined)  
100 -  
101 - // Request interceptor error capture  
102 - requestInterceptorsCatch &&  
103 - isFunction(requestInterceptorsCatch) &&  
104 - this.axiosInstance.interceptors.request.use(undefined, requestInterceptorsCatch)  
105 -  
106 - // Response result interceptor processing  
107 - this.axiosInstance.interceptors.response.use((res: AxiosResponse<any>) => {  
108 - res && axiosCanceler.removePending(res.config)  
109 - if (responseInterceptors && isFunction(responseInterceptors)) {  
110 - res = responseInterceptors(res)  
111 - }  
112 - return res  
113 - }, undefined)  
114 -  
115 - // Response result interceptor error capture  
116 - responseInterceptorsCatch &&  
117 - isFunction(responseInterceptorsCatch) &&  
118 - this.axiosInstance.interceptors.response.use(undefined, responseInterceptorsCatch)  
119 - }  
120 -  
121 - /**  
122 - * @description: File Upload  
123 - */  
124 - uploadFile<T = any>(config: AxiosRequestConfig, params: UploadFileParams) {  
125 - const formData = new window.FormData()  
126 - const customFilename = params.name || 'file'  
127 -  
128 - if (params.filename) {  
129 - formData.append(customFilename, params.file, params.filename)  
130 - } else {  
131 - formData.append(customFilename, params.file)  
132 - }  
133 -  
134 - if (params.data) {  
135 - Object.keys(params.data).forEach((key) => {  
136 - const value = params.data![key]  
137 - if (Array.isArray(value)) {  
138 - value.forEach((item) => {  
139 - formData.append(`${key}[]`, item)  
140 - })  
141 - return  
142 - }  
143 -  
144 - formData.append(key, params.data![key])  
145 - })  
146 - }  
147 - return this.axiosInstance.request<T>({  
148 - ...config,  
149 - method: 'POST',  
150 - data: {  
151 - file: formData  
152 - },  
153 - headers: {  
154 - 'Content-type': ContentTypeEnum.FORM_DATA,  
155 - // @ts-ignore  
156 - ignoreCancelToken: true  
157 - }  
158 - })  
159 - }  
160 -  
161 - // support form-data  
162 - supportFormData(config: AxiosRequestConfig) {  
163 - const headers = config.headers || this.options.headers  
164 - const contentType = headers?.['Content-Type'] || headers?.['content-type']  
165 -  
166 - if (  
167 - contentType !== ContentTypeEnum.FORM_URLENCODED ||  
168 - !Reflect.has(config, 'data') ||  
169 - config.method?.toUpperCase() === RequestEnum.GET  
170 - ) {  
171 - return config  
172 - }  
173 -  
174 - return {  
175 - ...config,  
176 - data: qs.stringify(config.data, { arrayFormat: 'brackets' })  
177 - }  
178 - }  
179 -  
180 - get<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {  
181 - return this.request({ ...config, method: 'GET' }, options)  
182 - }  
183 -  
184 - post<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {  
185 - return this.request({ ...config, method: 'POST' }, options)  
186 - }  
187 -  
188 - put<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {  
189 - return this.request({ ...config, method: 'PUT' }, options)  
190 - }  
191 -  
192 - delete<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {  
193 - return this.request({ ...config, method: 'DELETE' }, options)  
194 - }  
195 -  
196 - download<T = any>(  
197 - config: AxiosRequestConfig,  
198 - title: string,  
199 - options?: RequestOptions  
200 - ): Promise<T> {  
201 - let conf: CreateAxiosOptions = cloneDeep({  
202 - ...config,  
203 - method: 'GET',  
204 - responseType: 'blob'  
205 - })  
206 - const transform = this.getTransform()  
207 -  
208 - const { requestOptions } = this.options  
209 -  
210 - const opt: RequestOptions = Object.assign({}, requestOptions, options)  
211 -  
212 - const { beforeRequestHook, requestCatchHook } = transform || {}  
213 -  
214 - if (beforeRequestHook && isFunction(beforeRequestHook)) {  
215 - conf = beforeRequestHook(conf, opt)  
216 - }  
217 - conf.requestOptions = opt  
218 -  
219 - conf = this.supportFormData(conf)  
220 -  
221 - return new Promise((resolve, reject) => {  
222 - this.axiosInstance  
223 - .request<any, AxiosResponse<RequestResult>>(conf)  
224 - .then((res: AxiosResponse<RequestResult>) => {  
225 - resolve(res as unknown as Promise<T>)  
226 - // download file  
227 - if (typeof res != undefined) {  
228 - downloadByData(res?.data as unknown as BlobPart, title)  
229 - }  
230 - })  
231 - .catch((e: Error | AxiosError) => {  
232 - if (requestCatchHook && isFunction(requestCatchHook)) {  
233 - reject(requestCatchHook(e, opt))  
234 - return  
235 - }  
236 - if (axios.isAxiosError(e)) {  
237 - // rewrite error message from axios in here  
238 - }  
239 - reject(e)  
240 - })  
241 - })  
242 - }  
243 -  
244 - request<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> {  
245 - let conf: CreateAxiosOptions = cloneDeep(config)  
246 - const transform = this.getTransform()  
247 -  
248 - const { requestOptions } = this.options  
249 -  
250 - const opt: RequestOptions = Object.assign({}, requestOptions, options)  
251 -  
252 - const { beforeRequestHook, requestCatchHook, transformRequestHook } = transform || {}  
253 - if (beforeRequestHook && isFunction(beforeRequestHook)) {  
254 - conf = beforeRequestHook(conf, opt)  
255 - }  
256 - conf.requestOptions = opt  
257 -  
258 - conf = this.supportFormData(conf)  
259 -  
260 - return new Promise((resolve, reject) => {  
261 - this.axiosInstance  
262 - .request<any, AxiosResponse<RequestResult>>(conf)  
263 - .then((res: AxiosResponse<RequestResult>) => {  
264 - if (transformRequestHook && isFunction(transformRequestHook)) {  
265 - try {  
266 - const ret = transformRequestHook(res, opt)  
267 - resolve(ret)  
268 - } catch (err) {  
269 - reject(err || new Error('request error!'))  
270 - }  
271 - return  
272 - }  
273 - resolve(res as unknown as Promise<T>)  
274 - })  
275 - .catch((e: Error | AxiosError) => {  
276 - if (requestCatchHook && isFunction(requestCatchHook)) {  
277 - reject(requestCatchHook(e, opt))  
278 - return  
279 - }  
280 - if (axios.isAxiosError(e)) {  
281 - // rewrite error message from axios in here  
282 - }  
283 - reject(e)  
284 - })  
285 - })  
286 - }  
287 -}  
yudao-ui-admin-vue3/src/config/axios/axiosCancel.ts deleted
1 -import type { AxiosRequestConfig, Canceler } from 'axios'  
2 -import axios from 'axios'  
3 -import { isFunction } from '@/utils/is'  
4 -  
5 -// 用于存储每个请求的标识和取消功能  
6 -let pendingMap = new Map<string, Canceler>()  
7 -  
8 -export const getPendingUrl = (config: AxiosRequestConfig) => [config.method, config.url].join('&')  
9 -  
10 -export class AxiosCanceler {  
11 - /**  
12 - * 添加请求  
13 - * @param {Object} config  
14 - */  
15 - addPending(config: AxiosRequestConfig) {  
16 - this.removePending(config)  
17 - const url = getPendingUrl(config)  
18 - config.cancelToken =  
19 - config.cancelToken ||  
20 - new axios.CancelToken((cancel) => {  
21 - if (!pendingMap.has(url)) {  
22 - // If there is no current request in pending, add it  
23 - pendingMap.set(url, cancel)  
24 - }  
25 - })  
26 - }  
27 -  
28 - /**  
29 - * @description: 清除所有待处理的  
30 - */  
31 - removeAllPending() {  
32 - pendingMap.forEach((cancel) => {  
33 - cancel && isFunction(cancel) && cancel()  
34 - })  
35 - pendingMap.clear()  
36 - }  
37 -  
38 - /**  
39 - * 删除请求  
40 - * @param {Object} config  
41 - */  
42 - removePending(config: AxiosRequestConfig) {  
43 - const url = getPendingUrl(config)  
44 -  
45 - if (pendingMap.has(url)) {  
46 - // 如果挂起中有当前请求标识符,则需要取消并删除当前请求  
47 - const cancel = pendingMap.get(url)  
48 - cancel && cancel(url)  
49 - pendingMap.delete(url)  
50 - }  
51 - }  
52 -  
53 - /** 重置 */  
54 - reset(): void {  
55 - pendingMap = new Map<string, Canceler>()  
56 - }  
57 -}  
yudao-ui-admin-vue3/src/config/axios/axiosTransform.ts deleted
1 -/** 数据处理类,可根据项目配置 */  
2 -import type { AxiosRequestConfig, AxiosResponse } from 'axios'  
3 -import type { RequestOptions, RequestResult } from 'types/axios'  
4 -  
5 -export interface CreateAxiosOptions extends AxiosRequestConfig {  
6 - authenticationScheme?: string  
7 - transform?: AxiosTransform  
8 - requestOptions?: RequestOptions  
9 -}  
10 -  
11 -export abstract class AxiosTransform {  
12 - /** 请求前的流程配置 */  
13 - beforeRequestHook?: (config: AxiosRequestConfig, options: RequestOptions) => AxiosRequestConfig  
14 -  
15 - /** 请求成功处理 */  
16 - transformRequestHook?: (res: AxiosResponse<RequestResult>, options: RequestOptions) => any  
17 -  
18 - /** 请求失败处理 */  
19 - requestCatchHook?: (e: Error, options: RequestOptions) => Promise<any>  
20 -  
21 - /** 请求之前的拦截器 */  
22 - requestInterceptors?: (  
23 - config: AxiosRequestConfig,  
24 - options: CreateAxiosOptions  
25 - ) => AxiosRequestConfig  
26 -  
27 - /** 请求之后的拦截器 */  
28 - responseInterceptors?: (res: AxiosResponse<any>) => AxiosResponse<any>  
29 -  
30 - /** 请求之前的拦截器错误处理 */  
31 - requestInterceptorsCatch?: (error: Error) => void  
32 -  
33 - /** 请求之后的拦截器错误处理 */  
34 - responseInterceptorsCatch?: (error: Error) => void  
35 -}  
yudao-ui-admin-vue3/src/config/axios/checkStatus.ts deleted
1 -import type { ErrorMessageMode } from 'types/axios'  
2 -import { ElMessage, ElMessageBox } from 'element-plus'  
3 -import { useI18n } from '@/hooks/web/useI18n'  
4 -import { useCache } from '@/hooks/web/useCache'  
5 -  
6 -const { wsCache } = useCache()  
7 -  
8 -export function checkStatus(  
9 - status: number,  
10 - msg: string,  
11 - errorMessageMode: ErrorMessageMode = 'message'  
12 -): void {  
13 - const { t } = useI18n()  
14 - let errMessage = ''  
15 -  
16 - switch (status) {  
17 - case 400:  
18 - errMessage = `${msg}`  
19 - break  
20 - // 401: Not logged in  
21 - // 如果未登录,跳转到登录页面,并携带当前页面的路径  
22 - // 成功登录后返回当前页面。此步骤需要在登录页面上操作。  
23 - case 401:  
24 - wsCache.clear()  
25 - errMessage = msg || t('sys.api.errMsg401')  
26 - break  
27 - case 403:  
28 - errMessage = t('sys.api.errMsg403')  
29 - break  
30 - // 404请求不存在  
31 - case 404:  
32 - errMessage = t('sys.api.errMsg404')  
33 - break  
34 - case 405:  
35 - errMessage = t('sys.api.errMsg405')  
36 - break  
37 - case 408:  
38 - errMessage = t('sys.api.errMsg408')  
39 - break  
40 - case 500:  
41 - errMessage = t('sys.api.errMsg500')  
42 - break  
43 - case 501:  
44 - errMessage = t('sys.api.errMsg501')  
45 - break  
46 - case 502:  
47 - errMessage = t('sys.api.errMsg502')  
48 - break  
49 - case 503:  
50 - errMessage = t('sys.api.errMsg503')  
51 - break  
52 - case 504:  
53 - errMessage = t('sys.api.errMsg504')  
54 - break  
55 - case 505:  
56 - errMessage = t('sys.api.errMsg505')  
57 - break  
58 - case 901:  
59 - errMessage = t('sys.api.errMsg505')  
60 - break  
61 - default:  
62 - }  
63 -  
64 - if (errMessage) {  
65 - if (errorMessageMode === 'modal') {  
66 - ElMessageBox.confirm(errMessage, {  
67 - cancelButtonText: t('common.cancel'),  
68 - type: 'warning'  
69 - })  
70 - } else if (errorMessageMode === 'message') {  
71 - ElMessage.error(errMessage)  
72 - }  
73 - }  
74 -}  
yudao-ui-admin-vue3/src/config/axios/config.ts 0 → 100644
  1 +const config: {
  2 + base_url: {
  3 + base: string
  4 + dev: string
  5 + pro: string
  6 + test: string
  7 + }
  8 + result_code: number | string
  9 + default_headers: AxiosHeaders
  10 + request_timeout: number
  11 +} = {
  12 + /**
  13 + * api请求基础路径
  14 + */
  15 + base_url: {
  16 + // 开发环境接口前缀
  17 + base: '',
  18 +
  19 + // 打包开发环境接口前缀
  20 + dev: '',
  21 +
  22 + // 打包生产环境接口前缀
  23 + pro: '',
  24 +
  25 + // 打包测试环境接口前缀
  26 + test: ''
  27 + },
  28 +
  29 + /**
  30 + * 接口成功返回状态码
  31 + */
  32 + result_code: 200,
  33 +
  34 + /**
  35 + * 接口请求超时时间
  36 + */
  37 + request_timeout: 30000,
  38 +
  39 + /**
  40 + * 默认接口请求类型
  41 + * 可选值:application/x-www-form-urlencoded multipart/form-data
  42 + */
  43 + default_headers: 'application/json'
  44 +}
  45 +
  46 +export { config }
yudao-ui-admin-vue3/src/config/axios/errorCode.ts 0 → 100644
  1 +export default {
  2 + '401': '认证失败,无法访问系统资源',
  3 + '403': '当前操作没有权限',
  4 + '404': '访问资源不存在',
  5 + default: '系统未知错误,请反馈给管理员'
  6 +}
yudao-ui-admin-vue3/src/config/axios/helper.ts deleted
1 -import { isObject, isString } from '@/utils/is'  
2 -  
3 -const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss'  
4 -  
5 -export function joinTimestamp<T extends boolean>(  
6 - join: boolean,  
7 - restful: T  
8 -): T extends true ? string : object  
9 -  
10 -export function joinTimestamp(join: boolean, restful = false): string | object {  
11 - if (!join) {  
12 - return restful ? '' : {}  
13 - }  
14 - const now = new Date().getTime()  
15 - if (restful) {  
16 - return `?_t=${now}`  
17 - }  
18 - return { _t: now }  
19 -}  
20 -  
21 -/** 格式化请求参数中的时间 */  
22 -export function formatRequestDate(params: Recordable) {  
23 - if (Object.prototype.toString.call(params) !== '[object Object]') {  
24 - return  
25 - }  
26 -  
27 - for (const key in params) {  
28 - if (params[key] && params[key]._isAMomentObject) {  
29 - params[key] = params[key].format(DATE_TIME_FORMAT)  
30 - }  
31 - if (isString(key)) {  
32 - const value = params[key]  
33 - if (value) {  
34 - try {  
35 - params[key] = isString(value) ? value.trim() : value  
36 - } catch (error: any) {  
37 - throw new Error(error)  
38 - }  
39 - }  
40 - }  
41 - if (isObject(params[key])) {  
42 - formatRequestDate(params[key])  
43 - }  
44 - }  
45 -}  
yudao-ui-admin-vue3/src/config/axios/index.ts
1 -// axios配置 可自行根据项目进行更改,只需更改该文件即可,其他文件可以不动  
2 -// The axios configuration can be changed according to the project, just change the file, other files can be left unchanged 1 +import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios'
  2 +import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
  3 +import qs from 'qs'
  4 +import { config } from '@/config/axios/config'
  5 +import { getAccessToken, getRefreshToken, getTenantId } from '@/utils/auth'
  6 +import errorCode from './errorCode'
3 7
4 -import type { AxiosResponse } from 'axios'  
5 -import type { RequestOptions, RequestResult } from 'types/axios'  
6 -import type { AxiosTransform, CreateAxiosOptions } from './axiosTransform'  
7 -import { VAxios } from './Axios'  
8 -import { checkStatus } from './checkStatus'  
9 -import { RequestEnum, ResultEnum, ContentTypeEnum } from '@/enums/http.enum'  
10 -import { useCache } from '@/hooks/web/useCache'  
11 -import { isString } from '@/utils/is'  
12 -import { getAccessToken, setToken } from '@/utils/auth'  
13 -import { setObjToUrlParams, deepMerge } from './utils'  
14 -import { useI18n } from '@/hooks/web/useI18n'  
15 -import { joinTimestamp, formatRequestDate } from './helper'  
16 -import { ElMessage, ElMessageBox } from 'element-plus'  
17 -import { refreshToken } from '@/api/login'  
18 -  
19 -const { t } = useI18n()  
20 -const { wsCache } = useCache()  
21 const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE 8 const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE
22 const BASE_URL = import.meta.env.VITE_BASE_URL 9 const BASE_URL = import.meta.env.VITE_BASE_URL
23 const BASE_API = import.meta.env.VITE_API_URL 10 const BASE_API = import.meta.env.VITE_API_URL
24 -const apiUrl = BASE_URL + BASE_API 11 +const { result_code, base_url } = config
  12 +
  13 +// 需要忽略的提示。忽略后,自动 Promise.reject('error')
  14 +const ignoreMsgs = [
  15 + '无效的刷新令牌', // 刷新令牌被删除时,不用提示
  16 + '刷新令牌已过期' // 使用刷新令牌,刷新获取新的访问令牌时,结果因为过期失败,此时需要忽略。否则,会导致继续 401,无法跳转到登出界面
  17 +]
25 // 是否显示重新登录 18 // 是否显示重新登录
26 -// export let isRelogin = { show: false }  
27 -// TODO 请求队列  
28 -// let requestList = [] 19 +export const isRelogin = { show: false }
  20 +// Axios 无感知刷新令牌,参考 https://www.dashingdog.cn/article/11 与 https://segmentfault.com/a/1190000020210980 实现
29 // 是否正在刷新中 21 // 是否正在刷新中
30 let isRefreshToken = false 22 let isRefreshToken = false
31 -/**  
32 - * @description: 数据处理,方便区分多种处理方式  
33 - */  
34 -const transform: AxiosTransform = {  
35 - /**  
36 - * @description: 处理请求数据。如果数据不是预期格式,可直接抛出错误  
37 - */  
38 - transformRequestHook: async (res: AxiosResponse<RequestResult>, options: RequestOptions) => {  
39 - const { isTransformResponse, isReturnNativeResponse } = options  
40 - // 是否返回原生响应头 比如:需要获取响应头时使用该属性  
41 - if (isReturnNativeResponse) {  
42 - return res  
43 - }  
44 - // 不进行任何处理,直接返回  
45 - // 用于页面代码可能需要直接获取code,data,message这些信息时开启  
46 - if (!isTransformResponse) {  
47 - return res.data  
48 - }  
49 - // 错误的时候返回  
50 -  
51 - const { data } = res  
52 - if (!data) {  
53 - // 返回“[HTTP]请求没有返回值”;  
54 - throw new Error(t('sys.api.apiRequestFailed'))  
55 - }  
56 - // 这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式  
57 - const { code, msg } = data  
58 - const result = data.data  
59 - // TODO 芋艿:文件下载,需要特殊处理  
60 - if (code === undefined) {  
61 - console.log(res)  
62 - return res.data 23 +export const PATH_URL = base_url[import.meta.env.VITE_API_BASEPATH]
  24 +
  25 +// 创建axios实例
  26 +const service: AxiosInstance = axios.create({
  27 + baseURL: BASE_URL + BASE_API, // api 的 base_url
  28 + timeout: config.request_timeout // 请求超时时间
  29 +})
  30 +
  31 +// request拦截器
  32 +service.interceptors.request.use(
  33 + (config: AxiosRequestConfig) => {
  34 + // 是否需要设置 token
  35 + const isToken = (config!.headers || {}).isToken === false
  36 + if (getAccessToken() && !isToken) {
  37 + ;(config as Recordable).headers.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token
63 } 38 }
64 -  
65 - // 这里逻辑可以根据项目进行修改  
66 - const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS  
67 - if (hasSuccess) {  
68 - return result  
69 - }  
70 -  
71 - // 在此处根据自己项目的实际情况对不同的code执行不同的操作  
72 - // 如果不希望中断当前请求,请return数据,否则直接抛出异常即可  
73 - let timeoutMsg = ''  
74 - switch (code) {  
75 - case ResultEnum.TIMEOUT:  
76 - // TODO 未完成  
77 - // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了  
78 - if (!isRefreshToken) {  
79 - isRefreshToken = true  
80 - const refreshTokenRes = await refreshToken()  
81 - // 1. 如果获取不到刷新令牌,则只能执行登出操作  
82 - if (!refreshTokenRes) {  
83 - timeoutMsg = t('sys.api.timeoutMessage')  
84 - wsCache.clear() // 清除浏览器全部临时缓存  
85 - ElMessageBox.confirm(timeoutMsg, {  
86 - confirmButtonText: t('login.relogin'),  
87 - cancelButtonText: t('common.cancel'),  
88 - type: 'warning'  
89 - })  
90 - .then(() => {})  
91 - .catch(() => {})  
92 - break  
93 - } else {  
94 - // 2. 进行刷新访问令牌  
95 - // 2.1 刷新成功,则回放队列的请求 + 当前请求  
96 - setToken(refreshTokenRes.data)  
97 - }  
98 - }  
99 - default:  
100 - if (msg) {  
101 - timeoutMsg = msg  
102 - }  
103 - }  
104 -  
105 - // errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误  
106 - // errorMessageMode='none' 一般是调用时明确表示不希望自动弹出错误提示  
107 - if (options.errorMessageMode === 'modal') {  
108 - await ElMessageBox.confirm(timeoutMsg, {  
109 - type: 'error'  
110 - })  
111 - } else if (options.errorMessageMode === 'message') {  
112 - ElMessage.error(timeoutMsg) 39 + // 设置租户
  40 + if (tenantEnable) {
  41 + const tenantId = getTenantId()
  42 + if (tenantId) (config as Recordable).headers.common['tenant-id'] = tenantId
113 } 43 }
114 -  
115 - throw new Error(timeoutMsg || t('sys.api.apiRequestFailed'))  
116 - },  
117 -  
118 - // 请求之前处理config  
119 - beforeRequestHook: (config, options) => {  
120 - const { apiUrl, joinParamsToUrl, formatDate, joinTime = true } = options  
121 -  
122 - if (apiUrl && isString(apiUrl)) {  
123 - config.url = `${apiUrl}${config.url}` 44 + if (
  45 + config.method === 'post' &&
  46 + config!.headers!['Content-Type'] === 'application/x-www-form-urlencoded'
  47 + ) {
  48 + config.data = qs.stringify(config.data)
124 } 49 }
125 - const params = config.params || {}  
126 - const data = config.data || false  
127 - formatDate && data && !isString(data) && formatRequestDate(data)  
128 - if (config.method?.toUpperCase() === RequestEnum.GET) {  
129 - if (!isString(params)) {  
130 - // 给 get 请求加上时间戳参数,避免从缓存中拿数据。  
131 - config.params = Object.assign(params || {}, joinTimestamp(joinTime, false))  
132 - } else {  
133 - // 兼容restful风格  
134 - config.url = config.url + params + `${joinTimestamp(joinTime, true)}`  
135 - config.params = undefined  
136 - }  
137 - } else {  
138 - if (!isString(params)) {  
139 - formatDate && formatRequestDate(params)  
140 - if (Reflect.has(config, 'data') && config.data && Object.keys(config.data).length > 0) {  
141 - config.data = data  
142 - config.params = params  
143 - } else {  
144 - // 非GET请求如果没有提供data,则将params视为data  
145 - config.data = params  
146 - config.params = undefined 50 + // get参数编码
  51 + if (config.method === 'get' && config.params) {
  52 + let url = config.url as string
  53 + url += '?'
  54 + const keys = Object.keys(config.params)
  55 + for (const key of keys) {
  56 + if (config.params[key] !== void 0 && config.params[key] !== null) {
  57 + url += `${key}=${encodeURIComponent(config.params[key])}&`
147 } 58 }
148 - if (joinParamsToUrl) {  
149 - config.url = setObjToUrlParams(  
150 - config.url as string,  
151 - Object.assign({}, config.params, config.data)  
152 - )  
153 - }  
154 - } else {  
155 - // 兼容restful风格  
156 - config.url = config.url + params  
157 - config.params = undefined  
158 } 59 }
  60 + // 给 get 请求加上时间戳参数,避免从缓存中拿数据
  61 + // const now = new Date().getTime()
  62 + // url = url.substring(0, url.length - 1) + `?_t=${now}`
  63 + config.params = {}
  64 + config.url = url
159 } 65 }
160 return config 66 return config
161 }, 67 },
  68 + (error: AxiosError) => {
  69 + // Do something with request error
  70 + console.log(error) // for debug
  71 + Promise.reject(error)
  72 + }
  73 +)
162 74
163 - /**  
164 - * @description: 请求拦截器处理  
165 - */  
166 - requestInterceptors: (config, options) => {  
167 - // 请求之前处理config  
168 - const token = getAccessToken()  
169 - if (token && (config as Recordable)?.requestOptions?.withToken !== false) {  
170 - // jwt token  
171 - ;(config as Recordable).headers.Authorization = options.authenticationScheme  
172 - ? `${options.authenticationScheme} ${token}`  
173 - : token  
174 - }  
175 - // 设置租户  
176 - if (tenantEnable) {  
177 - const tenantId = wsCache.get('tenantId')  
178 - if (tenantId) (config as Recordable).headers.common['tenant-id'] = tenantId 75 +// response 拦截器
  76 +service.interceptors.response.use(
  77 + async (response: AxiosResponse<Recordable>) => {
  78 + const { data } = response
  79 + if (!data) {
  80 + // 返回“[HTTP]请求没有返回值”;
  81 + throw new Error()
179 } 82 }
180 - return config  
181 - },  
182 -  
183 - /**  
184 - * @description: 响应拦截器处理  
185 - */  
186 - responseInterceptors: (res: AxiosResponse<any>) => {  
187 - return res  
188 - },  
189 -  
190 - /**  
191 - * @description: 响应错误处理  
192 - */  
193 - responseInterceptorsCatch: (error: any) => {  
194 - const { response, code, message, config } = error || {}  
195 - const errorMessageMode = config?.requestOptions?.errorMessageMode || 'none'  
196 - const msg: string = response?.data?.msg ?? ''  
197 - const err: string = error?.toString?.() ?? ''  
198 - let errMessage = ''  
199 -  
200 - try {  
201 - if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) {  
202 - errMessage = t('sys.api.apiTimeoutMessage')  
203 - }  
204 - if (err?.includes('Network Error')) {  
205 - errMessage = t('sys.api.networkExceptionMsg')  
206 - }  
207 -  
208 - if (errMessage) {  
209 - if (errorMessageMode === 'modal') {  
210 - ElMessageBox.confirm(errMessage, {  
211 - type: 'error'  
212 - })  
213 - } else if (errorMessageMode === 'message') {  
214 - ElMessage.error(errMessage) 83 + // 未设置状态码则默认成功状态
  84 + const code = data.code || result_code
  85 + // 获取错误信息
  86 + const msg = data.msg || errorCode[code] || errorCode['default']
  87 + if (ignoreMsgs.indexOf(msg) !== -1) {
  88 + // 如果是忽略的错误码,直接返回 msg 异常
  89 + return Promise.reject(msg)
  90 + } else if (code === 401) {
  91 + // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
  92 + if (!isRefreshToken) {
  93 + isRefreshToken = true
  94 + // 1. 如果获取不到刷新令牌,则只能执行登出操作
  95 + if (!getRefreshToken()) {
  96 + return handleAuthorized()
215 } 97 }
216 - return Promise.reject(error)  
217 } 98 }
218 - } catch (error) {  
219 - throw new Error(error as unknown as string) 99 + } else if (code === 500) {
  100 + ElMessage.error(msg)
  101 + return Promise.reject(new Error(msg))
  102 + } else if (code === 901) {
  103 + ElMessage.error(
  104 + '<div>演示模式,无法进行写操作</div>' +
  105 + '<div> &nbsp; </div>' +
  106 + '<div>参考 https://doc.iocoder.cn/ 教程</div>' +
  107 + '<div> &nbsp; </div>' +
  108 + '<div>5 分钟搭建本地环境</div>'
  109 + )
  110 + return Promise.reject(new Error(msg))
  111 + } else if (code !== 200) {
  112 + if (msg === '无效的刷新令牌') {
  113 + // hard coding:忽略这个提示,直接登出
  114 + console.log(msg)
  115 + } else {
  116 + ElNotification.error({
  117 + title: msg
  118 + })
  119 + }
  120 + return Promise.reject('error')
  121 + } else {
  122 + return data
220 } 123 }
221 -  
222 - checkStatus(error?.response?.status, msg, errorMessageMode) 124 + },
  125 + (error: AxiosError) => {
  126 + console.log('err' + error) // for debug
  127 + ElMessage.error(error.message)
223 return Promise.reject(error) 128 return Promise.reject(error)
224 } 129 }
  130 +)
  131 +function handleAuthorized() {
  132 + if (!isRelogin.show) {
  133 + isRelogin.show = true
  134 + ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
  135 + confirmButtonText: '重新登录',
  136 + cancelButtonText: '取消',
  137 + type: 'warning'
  138 + })
  139 + .then(() => {
  140 + isRelogin.show = false
  141 + })
  142 + .catch(() => {
  143 + isRelogin.show = false
  144 + })
  145 + }
  146 + return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
225 } 147 }
226 -  
227 -function createAxios(opt?: Partial<CreateAxiosOptions>) {  
228 - return new VAxios(  
229 - deepMerge(  
230 - {  
231 - // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes  
232 - // authentication schemes,e.g: Bearer  
233 - // authenticationScheme: 'Bearer',  
234 - authenticationScheme: 'Bearer',  
235 - timeout: 10 * 1000,  
236 - // 基础接口地址  
237 - // baseURL: globSetting.apiUrl,  
238 -  
239 - headers: { 'Content-Type': ContentTypeEnum.JSON },  
240 - // 如果是form-data格式  
241 - // headers: { 'Content-Type': ContentTypeEnum.FORM_URLENCODED },  
242 - // 数据处理方式  
243 - transform,  
244 - // 配置项,下面的选项都可以在独立的接口请求中覆盖  
245 - requestOptions: {  
246 - // 默认将prefix 添加到url  
247 - joinPrefix: true,  
248 - // 是否返回原生响应头 比如:需要获取响应头时使用该属性  
249 - isReturnNativeResponse: false,  
250 - // 需要对返回数据进行处理  
251 - isTransformResponse: true,  
252 - // post请求的时候添加参数到url  
253 - joinParamsToUrl: false,  
254 - // 格式化提交参数时间  
255 - formatDate: true,  
256 - // 消息提示类型  
257 - errorMessageMode: 'message',  
258 - // 接口地址  
259 - apiUrl: apiUrl,  
260 - // 是否加入时间戳  
261 - joinTime: true,  
262 - // 忽略重复请求  
263 - ignoreCancelToken: true,  
264 - // 是否携带token  
265 - withToken: true  
266 - }  
267 - },  
268 - opt || {}  
269 - )  
270 - )  
271 -}  
272 -export const defHttp = createAxios()  
273 -  
274 -// other api url  
275 -// export const otherHttp = createAxios({  
276 -// requestOptions: {  
277 -// apiUrl: 'xxx',  
278 -// urlPrefix: 'xxx',  
279 -// },  
280 -// }); 148 +export { service }
yudao-ui-admin-vue3/src/config/axios/utils.ts deleted
1 -import { unref } from 'vue'  
2 -import { isObject } from '@/utils/is'  
3 -// dynamic use hook props  
4 -export const getDynamicProps = <T, U>(props: T): Partial<U> => {  
5 - const ret: Recordable = {}  
6 -  
7 - Object.keys(props).map((key) => {  
8 - ret[key] = unref((props as Recordable)[key])  
9 - })  
10 -  
11 - return ret as Partial<U>  
12 -}  
13 -  
14 -export const openWindow = (  
15 - url: string,  
16 - opt?: {  
17 - target?: '_self' | '_blank' | string  
18 - noopener?: boolean  
19 - noreferrer?: boolean  
20 - }  
21 -) => {  
22 - const { target = '__blank', noopener = true, noreferrer = true } = opt || {}  
23 - const feature: string[] = []  
24 -  
25 - noopener && feature.push('noopener=yes')  
26 - noreferrer && feature.push('noreferrer=yes')  
27 -  
28 - window.open(url, target, feature.join(','))  
29 -}  
30 -  
31 -/**  
32 - * Add the object as a parameter to the URL  
33 - * @param baseUrl url  
34 - * @param obj  
35 - * @returns {string}  
36 - * eg:  
37 - * let obj = {a: '3', b: '4'}  
38 - * setObjToUrlParams('www.baidu.com', obj)  
39 - * ==>www.baidu.com?a=3&b=4  
40 - */  
41 -export const setObjToUrlParams = (baseUrl: string, obj: any): string => {  
42 - let parameters = ''  
43 - for (const key in obj) {  
44 - parameters += key + '=' + encodeURIComponent(obj[key]) + '&'  
45 - }  
46 - parameters = parameters.replace(/&$/, '')  
47 - return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, '?') + parameters  
48 -}  
49 -  
50 -/**  
51 - * @description: Set ui mount node  
52 - */  
53 -export const getPopupContainer = (node?: HTMLElement): HTMLElement => {  
54 - return (node?.parentNode as HTMLElement) ?? document.body  
55 -}  
56 -  
57 -export function deepMerge<T = any>(src: any = {}, target: any = {}): T {  
58 - let key: string  
59 - for (key in target) {  
60 - src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key])  
61 - }  
62 - return src  
63 -}  
yudao-ui-admin-vue3/src/directive/index.ts renamed to yudao-ui-admin-vue3/src/directives/index.ts
yudao-ui-admin-vue3/src/directive/permission/hasPermi.ts renamed to yudao-ui-admin-vue3/src/directives/permission/hasPermi.ts
yudao-ui-admin-vue3/src/directive/permission/hasRole.ts renamed to yudao-ui-admin-vue3/src/directives/permission/hasRole.ts
yudao-ui-admin-vue3/src/enums/http.enum.ts deleted
1 -/**  
2 - * @description: Request result set  
3 - */  
4 -export enum ResultEnum {  
5 - SUCCESS = 0,  
6 - ERROR = 500,  
7 - TIMEOUT = 401,  
8 - TYPE = 'success'  
9 -}  
10 -  
11 -/**  
12 - * @description: request method  
13 - */  
14 -export enum RequestEnum {  
15 - GET = 'GET',  
16 - POST = 'POST',  
17 - PUT = 'PUT',  
18 - DELETE = 'DELETE'  
19 -}  
20 -  
21 -/**  
22 - * @description: contentType  
23 - */  
24 -export enum ContentTypeEnum {  
25 - // json  
26 - JSON = 'application/json;charset=UTF-8',  
27 - // form-data qs  
28 - FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',  
29 - // form-data upload  
30 - FORM_DATA = 'multipart/form-data;charset=UTF-8'  
31 -}  
32 -  
33 -/**  
34 - * Exception related enumeration  
35 - */  
36 -export enum ExceptionEnum {  
37 - // page not access  
38 - PAGE_NOT_ACCESS = 403,  
39 -  
40 - // page not found  
41 - PAGE_NOT_FOUND = 404,  
42 -  
43 - // error  
44 - ERROR = 500,  
45 -  
46 - // net work error  
47 - NET_WORK_ERROR = 10000,  
48 -  
49 - // No data on the page. In fact, it is not an exception page  
50 - PAGE_NOT_DATA = 10100  
51 -}  
yudao-ui-admin-vue3/src/hooks/web/useAxios.ts
1 -// import { service } from '@/config/axios'  
2 -  
3 -// import { AxiosPromise } from 'axios'  
4 -  
5 -// import { config } from '@/config/axios/config'  
6 -  
7 -// const { default_headers } = config  
8 -  
9 -// const request = <T>(option: AxiosConfig): AxiosPromise<T> => {  
10 -// const { url, method, params, data, headersType, responseType } = option  
11 -// return service({  
12 -// url: url,  
13 -// method,  
14 -// params,  
15 -// data,  
16 -// responseType: responseType,  
17 -// headers: {  
18 -// 'Content-Type': headersType || default_headers  
19 -// }  
20 -// })  
21 -// }  
22 -  
23 -// function getFn<T = any>(option: AxiosConfig): AxiosPromise<T> {  
24 -// return request<T>({ method: 'get', ...option })  
25 -// }  
26 -  
27 -// function postFn<T = any>(option: AxiosConfig): AxiosPromise<T> {  
28 -// return request<T>({ method: 'post', ...option })  
29 -// }  
30 -  
31 -// function deleteFn<T = any>(option: AxiosConfig): AxiosPromise<T> {  
32 -// return request<T>({ method: 'delete', ...option })  
33 -// }  
34 -  
35 -// function putFn<T = any>(option: AxiosConfig): AxiosPromise<T> {  
36 -// return request<T>({ method: 'put', ...option })  
37 -// }  
38 -  
39 -// export const useAxios = () => {  
40 -// return {  
41 -// get: getFn,  
42 -// post: postFn,  
43 -// delete: deleteFn,  
44 -// put: putFn  
45 -// }  
46 -// } 1 +import { service } from '@/config/axios'
  2 +
  3 +import { config } from '@/config/axios/config'
  4 +
  5 +const { default_headers } = config
  6 +
  7 +const request = (option: AxiosConfig) => {
  8 + const { url, method, params, data, headersType, responseType } = option
  9 + return service({
  10 + url: url,
  11 + method,
  12 + params,
  13 + data,
  14 + responseType: responseType,
  15 + headers: {
  16 + 'Content-Type': headersType || default_headers
  17 + }
  18 + })
  19 +}
  20 +
  21 +async function getFn<T = any>(option: AxiosConfig): Promise<T> {
  22 + const res = await request({ method: 'GET', ...option })
  23 + return res.data
  24 +}
  25 +
  26 +async function postFn<T = any>(option: AxiosConfig): Promise<T> {
  27 + const res = await request({ method: 'POST', ...option })
  28 + return res.data
  29 +}
  30 +
  31 +async function deleteFn<T = any>(option: AxiosConfig): Promise<T> {
  32 + const res = await request({ method: 'DELETE', ...option })
  33 + return res.data
  34 +}
  35 +
  36 +async function putFn<T = any>(option: AxiosConfig): Promise<T> {
  37 + const res = await request({ method: 'PUT', ...option })
  38 + return res.data
  39 +}
  40 +
  41 +export const useAxios = () => {
  42 + return {
  43 + get: getFn,
  44 + post: postFn,
  45 + delete: deleteFn,
  46 + put: putFn
  47 + }
  48 +}
yudao-ui-admin-vue3/src/hooks/web/useTable.ts
1 import download from '@/utils/download' 1 import download from '@/utils/download'
2 -import { useI18n } from '@/hooks/web/useI18n'  
3 import { Table, TableExpose } from '@/components/Table' 2 import { Table, TableExpose } from '@/components/Table'
4 -import { ElMessage, ElMessageBox, ElTable } from 'element-plus'  
5 -import { computed, nextTick, reactive, ref, unref, watch } from 'vue' 3 +import { ElTable, ElMessageBox, ElMessage } from 'element-plus'
  4 +import { ref, reactive, watch, computed, unref, nextTick } from 'vue'
6 import type { TableProps } from '@/components/Table/src/types' 5 import type { TableProps } from '@/components/Table/src/types'
  6 +import { useI18n } from '@/hooks/web/useI18n'
  7 +
7 const { t } = useI18n() 8 const { t } = useI18n()
  9 +interface ResponseType<T = any> {
  10 + list: T[]
  11 + total?: string
  12 +}
8 13
9 -interface UseTableConfig<T, L> {  
10 - getListApi: (option: L) => Promise<T>  
11 - delListApi?: (ids: string | number) => Promise<unknown>  
12 - exportListApi?: (option: L) => Promise<T> 14 +interface UseTableConfig<T = any> {
  15 + getListApi: (option: any) => Promise<T>
  16 + delListApi?: (option: any) => Promise<T>
  17 + exportListApi?: (option: any) => Promise<T>
  18 + // 返回数据格式配置
  19 + response?: ResponseType
13 props?: TableProps 20 props?: TableProps
14 } 21 }
15 22
16 -interface TableObject<K, L> { 23 +interface TableObject<T = any> {
17 pageSize: number 24 pageSize: number
18 currentPage: number 25 currentPage: number
19 total: number 26 total: number
20 - tableList: K[]  
21 - paramsObj: L 27 + tableList: T[]
  28 + params: any
22 loading: boolean 29 loading: boolean
23 exportLoading: boolean 30 exportLoading: boolean
24 - currentRow: Nullable<K> 31 + currentRow: Nullable<T>
25 } 32 }
26 33
27 -export const useTable = <T, K, L extends AxiosConfig = AxiosConfig>(  
28 - config?: UseTableConfig<T, L>  
29 -) => {  
30 - const tableObject = reactive<TableObject<K, L>>({ 34 +export const useTable = <T = any>(config?: UseTableConfig<T>) => {
  35 + const tableObject = reactive<TableObject<T>>({
31 // 页数 36 // 页数
32 pageSize: 10, 37 pageSize: 10,
33 // 当前页 38 // 当前页
@@ -37,7 +42,7 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;( @@ -37,7 +42,7 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;(
37 // 表格数据 42 // 表格数据
38 tableList: [], 43 tableList: [],
39 // AxiosConfig 配置 44 // AxiosConfig 配置
40 - paramsObj: {} as L, 45 + params: {},
41 // 加载中 46 // 加载中
42 loading: true, 47 loading: true,
43 // 导出加载中 48 // 导出加载中
@@ -48,11 +53,9 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;( @@ -48,11 +53,9 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;(
48 53
49 const paramsObj = computed(() => { 54 const paramsObj = computed(() => {
50 return { 55 return {
51 - params: {  
52 - ...tableObject.paramsObj.params,  
53 - pageSize: tableObject.pageSize,  
54 - pageNo: tableObject.currentPage  
55 - } 56 + ...tableObject.params,
  57 + pageSize: tableObject.pageSize,
  58 + pageNo: tableObject.currentPage
56 } 59 }
57 }) 60 })
58 61
@@ -109,33 +112,25 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;( @@ -109,33 +112,25 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;(
109 await (config?.delListApi && config?.delListApi(ids)) 112 await (config?.delListApi && config?.delListApi(ids))
110 } 113 }
111 ElMessage.success(t('common.delSuccess')) 114 ElMessage.success(t('common.delSuccess'))
  115 +
112 // 计算出临界点 116 // 计算出临界点
113 - tableObject.currentPage = 117 + const currentPage =
114 tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1 118 tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1
115 ? tableObject.currentPage > 1 119 ? tableObject.currentPage > 1
116 ? tableObject.currentPage - 1 120 ? tableObject.currentPage - 1
117 : tableObject.currentPage 121 : tableObject.currentPage
118 : tableObject.currentPage 122 : tableObject.currentPage
  123 +
  124 + tableObject.currentPage = currentPage
119 methods.getList() 125 methods.getList()
120 } 126 }
121 127
122 - const methods: {  
123 - setProps: (props: Recordable) => void  
124 - getList: () => Promise<void>  
125 - setColumn: (columnProps: TableSetPropsType[]) => void  
126 - setSearchParams: (data: Recordable) => void  
127 - getSelections: () => Promise<K[]>  
128 - delList: (ids: string | number | string[] | number[], multiple: boolean) => Promise<void>  
129 - exportList: (fileName: string) => Promise<void>  
130 - } = { 128 + const methods = {
131 getList: async () => { 129 getList: async () => {
132 tableObject.loading = true 130 tableObject.loading = true
133 - const res = await config  
134 - ?.getListApi(unref(paramsObj) as unknown as L)  
135 - .catch(() => {})  
136 - .finally(() => {  
137 - tableObject.loading = false  
138 - }) 131 + const res = await config?.getListApi(unref(paramsObj)).finally(() => {
  132 + tableObject.loading = false
  133 + })
139 if (res) { 134 if (res) {
140 tableObject.tableList = res?.list 135 tableObject.tableList = res?.list
141 tableObject.total = res?.total 136 tableObject.total = res?.total
@@ -151,41 +146,42 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;( @@ -151,41 +146,42 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;(
151 }, 146 },
152 getSelections: async () => { 147 getSelections: async () => {
153 const table = await getTable() 148 const table = await getTable()
154 - return (table?.selections || []) as K[] 149 + return (table?.selections || []) as T[]
155 }, 150 },
156 // 与Search组件结合 151 // 与Search组件结合
157 setSearchParams: (data: Recordable) => { 152 setSearchParams: (data: Recordable) => {
158 tableObject.currentPage = 1 153 tableObject.currentPage = 1
159 - tableObject.paramsObj = Object.assign(tableObject.paramsObj, {  
160 - params: {  
161 - pageSize: tableObject.pageSize,  
162 - pageNo: tableObject.currentPage,  
163 - ...data  
164 - } 154 + tableObject.params = Object.assign(tableObject.params, {
  155 + pageSize: tableObject.pageSize,
  156 + pageNo: tableObject.currentPage,
  157 + ...data
165 }) 158 })
166 methods.getList() 159 methods.getList()
167 }, 160 },
168 // 删除数据 161 // 删除数据
169 - delList: async (ids: string | number | string[] | number[], multiple: boolean) => { 162 + delList: async (
  163 + ids: string | number | string[] | number[],
  164 + multiple: boolean,
  165 + message = true
  166 + ) => {
170 const tableRef = await getTable() 167 const tableRef = await getTable()
171 - let message = 'common.delDataMessage'  
172 if (multiple) { 168 if (multiple) {
173 if (!tableRef?.selections.length) { 169 if (!tableRef?.selections.length) {
174 ElMessage.warning(t('common.delNoData')) 170 ElMessage.warning(t('common.delNoData'))
175 return 171 return
176 - } else {  
177 - message = 'common.delMessage'  
178 } 172 }
179 } 173 }
180 - ElMessageBox.confirm(t(message), t('common.confirmTitle'), {  
181 - confirmButtonText: t('common.ok'),  
182 - cancelButtonText: t('common.cancel'),  
183 - type: 'warning'  
184 - })  
185 - .then(async () => { 174 + if (message) {
  175 + ElMessageBox.confirm(t('common.delMessage'), t('common.confirmTitle'), {
  176 + confirmButtonText: t('common.ok'),
  177 + cancelButtonText: t('common.cancel'),
  178 + type: 'warning'
  179 + }).then(async () => {
186 await delData(ids) 180 await delData(ids)
187 }) 181 })
188 - .catch(() => {}) 182 + } else {
  183 + await delData(ids)
  184 + }
189 }, 185 },
190 // 导出列表 186 // 导出列表
191 exportList: async (fileName: string) => { 187 exportList: async (fileName: string) => {
@@ -196,14 +192,11 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;( @@ -196,14 +192,11 @@ export const useTable = &lt;T, K, L extends AxiosConfig = AxiosConfig&gt;(
196 type: 'warning' 192 type: 'warning'
197 }) 193 })
198 .then(async () => { 194 .then(async () => {
199 - const res = await config  
200 - ?.exportListApi?.(unref(paramsObj) as unknown as L)  
201 - .catch(() => {}) 195 + const res = await config?.exportListApi?.(unref(paramsObj) as unknown as T)
202 if (res) { 196 if (res) {
203 download.excel(res, fileName) 197 download.excel(res, fileName)
204 } 198 }
205 }) 199 })
206 - .catch(() => {})  
207 .finally(() => { 200 .finally(() => {
208 tableObject.exportLoading = false 201 tableObject.exportLoading = false
209 }) 202 })
yudao-ui-admin-vue3/src/hooks/web/useValidator.ts
@@ -27,8 +27,8 @@ export const useValidator = () =&gt; { @@ -27,8 +27,8 @@ export const useValidator = () =&gt; {
27 } 27 }
28 } 28 }
29 29
30 - // 不能有空格  
31 const notSpace = (val: any, callback: Callback, message: string) => { 30 const notSpace = (val: any, callback: Callback, message: string) => {
  31 + // 用户名不能有空格
32 if (val.indexOf(' ') !== -1) { 32 if (val.indexOf(' ') !== -1) {
33 callback(new Error(message)) 33 callback(new Error(message))
34 } else { 34 } else {
@@ -36,8 +36,8 @@ export const useValidator = () =&gt; { @@ -36,8 +36,8 @@ export const useValidator = () =&gt; {
36 } 36 }
37 } 37 }
38 38
39 - // 不能是特殊字符  
40 const notSpecialCharacters = (val: any, callback: Callback, message: string) => { 39 const notSpecialCharacters = (val: any, callback: Callback, message: string) => {
  40 + // 密码不能是特殊字符
41 if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) { 41 if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) {
42 callback(new Error(message)) 42 callback(new Error(message))
43 } else { 43 } else {
yudao-ui-admin-vue3/src/main.ts
1 // 引入windi css 1 // 引入windi css
2 import '@/plugins/windi.css' 2 import '@/plugins/windi.css'
  3 +
3 // 导入全局的svg图标 4 // 导入全局的svg图标
4 import '@/plugins/svgIcon' 5 import '@/plugins/svgIcon'
  6 +
5 // 初始化多语言 7 // 初始化多语言
6 import { setupI18n } from '@/plugins/vueI18n' 8 import { setupI18n } from '@/plugins/vueI18n'
  9 +
7 // 引入状态管理 10 // 引入状态管理
8 import { setupStore } from '@/store' 11 import { setupStore } from '@/store'
  12 +
9 // 全局组件 13 // 全局组件
10 import { setupGlobCom } from '@/components' 14 import { setupGlobCom } from '@/components'
  15 +
11 // 引入element-plus 16 // 引入element-plus
12 import { setupElementPlus } from '@/plugins/elementPlus' 17 import { setupElementPlus } from '@/plugins/elementPlus'
  18 +
13 // 引入全局样式 19 // 引入全局样式
14 import '@/styles/index.less' 20 import '@/styles/index.less'
  21 +
15 // 引入动画 22 // 引入动画
16 import '@/plugins/animate.css' 23 import '@/plugins/animate.css'
  24 +
17 // 路由 25 // 路由
18 import { setupRouter } from './router' 26 import { setupRouter } from './router'
  27 +
19 // 权限 28 // 权限
20 -import { setupAuth } from './directive' 29 +import { setupAuth } from './directives'
  30 +
21 import { createApp } from 'vue' 31 import { createApp } from 'vue'
  32 +
22 import App from './App.vue' 33 import App from './App.vue'
  34 +
23 // 创建实例 35 // 创建实例
24 const setupAll = async () => { 36 const setupAll = async () => {
25 const app = createApp(App) 37 const app = createApp(App)
yudao-ui-admin-vue3/src/plugins/elementPlus/message.ts deleted
1 -import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'  
2 -import { useI18n } from '@/hooks/web/useI18n'  
3 -const { t } = useI18n() // 国际化  
4 -  
5 -const message = {  
6 - // 消息提示  
7 - msg(content: string) {  
8 - ElMessage.info(content)  
9 - },  
10 - // 错误消息  
11 - msgError(content: string) {  
12 - ElMessage.error(content)  
13 - },  
14 - // 成功消息  
15 - msgSuccess(content: string) {  
16 - ElMessage.success(content)  
17 - },  
18 - // 警告消息  
19 - msgWarning(content: string) {  
20 - ElMessage.warning(content)  
21 - },  
22 - // 弹出提示  
23 - alert(content: string) {  
24 - ElMessageBox.alert(content, t('common.confirmTitle'))  
25 - },  
26 - // 错误提示  
27 - alertError(content: string) {  
28 - ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'error' })  
29 - },  
30 - // 成功提示  
31 - alertSuccess(content: string) {  
32 - ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'success' })  
33 - },  
34 - // 警告提示  
35 - alertWarning(content: string) {  
36 - ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'warning' })  
37 - },  
38 - // 通知提示  
39 - notify(content: string) {  
40 - ElNotification.info(content)  
41 - },  
42 - // 错误通知  
43 - notifyError(content: string) {  
44 - ElNotification.error(content)  
45 - },  
46 - // 成功通知  
47 - notifySuccess(content: string) {  
48 - ElNotification.success(content)  
49 - },  
50 - // 警告通知  
51 - notifyWarning(content: string) {  
52 - ElNotification.warning(content)  
53 - },  
54 - // 确认窗体  
55 - confirm(content: string) {  
56 - return ElMessageBox.confirm(content, t('common.confirmTitle'), {  
57 - confirmButtonText: t('common.ok'),  
58 - cancelButtonText: t('common.cancel'),  
59 - type: 'warning'  
60 - })  
61 - },  
62 - // 提交内容  
63 - prompt(content: string) {  
64 - return ElMessageBox.prompt(content, t('common.confirmTitle'), {  
65 - confirmButtonText: t('common.ok'),  
66 - cancelButtonText: t('common.cancel'),  
67 - type: 'warning'  
68 - })  
69 - }  
70 -}  
71 -  
72 -export default message  
yudao-ui-admin-vue3/src/router/index.ts
@@ -26,7 +26,6 @@ const router = createRouter({ @@ -26,7 +26,6 @@ const router = createRouter({
26 history: createWebHashHistory(), 26 history: createWebHashHistory(),
27 strict: true, 27 strict: true,
28 routes: remainingRouter as RouteRecordRaw[], 28 routes: remainingRouter as RouteRecordRaw[],
29 - // routes: constantRoutes.concat(...remainingRouter),  
30 scrollBehavior: () => ({ left: 0, top: 0 }) 29 scrollBehavior: () => ({ left: 0, top: 0 })
31 }) 30 })
32 31
yudao-ui-admin-vue3/src/store/modules/user.ts
1 import { store } from '../index' 1 import { store } from '../index'
2 import { defineStore } from 'pinia' 2 import { defineStore } from 'pinia'
3 -import { getInfoApi } from '@/api/login'  
4 import { getAccessToken } from '@/utils/auth' 3 import { getAccessToken } from '@/utils/auth'
5 import { useCache } from '@/hooks/web/useCache' 4 import { useCache } from '@/hooks/web/useCache'
6 5
  6 +const { wsCache } = useCache()
  7 +
7 interface UserInfoVO { 8 interface UserInfoVO {
8 permissions: [] 9 permissions: []
9 roles: [] 10 roles: []
@@ -13,7 +14,6 @@ interface UserInfoVO { @@ -13,7 +14,6 @@ interface UserInfoVO {
13 nickname: string 14 nickname: string
14 } 15 }
15 } 16 }
16 -const { wsCache } = useCache()  
17 17
18 export const useUserStore = defineStore({ 18 export const useUserStore = defineStore({
19 id: 'admin-user', 19 id: 'admin-user',
@@ -27,16 +27,15 @@ export const useUserStore = defineStore({ @@ -27,16 +27,15 @@ export const useUserStore = defineStore({
27 } 27 }
28 }), 28 }),
29 actions: { 29 actions: {
30 - async getUserInfoAction() { 30 + async getUserInfoAction(userInfo: UserInfoVO) {
31 if (!getAccessToken()) { 31 if (!getAccessToken()) {
32 this.resetState() 32 this.resetState()
33 return null 33 return null
34 } 34 }
35 - const res = await getInfoApi()  
36 - this.permissions = res.permissions  
37 - this.roles = res.roles  
38 - this.user = res.user  
39 - wsCache.set('user', res) 35 + this.permissions = userInfo.permissions
  36 + this.roles = userInfo.roles
  37 + this.user = userInfo.user
  38 + wsCache.set('user', userInfo)
40 }, 39 },
41 resetState() { 40 resetState() {
42 this.permissions = [] 41 this.permissions = []
yudao-ui-admin-vue3/src/styles/index.less
1 @import './var.css'; 1 @import './var.css';
2 -@import 'element-plus/theme-chalk/dark/css-vars.css';  
3 \ No newline at end of file 2 \ No newline at end of file
  3 +@import 'element-plus/theme-chalk/dark/css-vars.css';
yudao-ui-admin-vue3/src/utils/auth.ts
1 import { useCache } from '@/hooks/web/useCache' 1 import { useCache } from '@/hooks/web/useCache'
2 import { TokenType } from '@/api/login/types' 2 import { TokenType } from '@/api/login/types'
  3 +import { decrypt, encrypt } from '@/utils/jsencrypt'
3 4
4 const { wsCache } = useCache() 5 const { wsCache } = useCache()
5 const AccessTokenKey = 'ACCESS_TOKEN' 6 const AccessTokenKey = 'ACCESS_TOKEN'
6 const RefreshTokenKey = 'REFRESH_TOKEN' 7 const RefreshTokenKey = 'REFRESH_TOKEN'
7 8
8 // 获取token 9 // 获取token
9 -export function getAccessToken() { 10 +export const getAccessToken = () => {
10 // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错 11 // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
11 return wsCache.get('ACCESS_TOKEN') 12 return wsCache.get('ACCESS_TOKEN')
12 } 13 }
13 14
14 // 刷新token 15 // 刷新token
15 -export function getRefreshToken() { 16 +export const getRefreshToken = () => {
16 return wsCache.get(RefreshTokenKey) 17 return wsCache.get(RefreshTokenKey)
17 } 18 }
18 19
19 // 设置token 20 // 设置token
20 -export function setToken(token: TokenType) { 21 +export const setToken = (token: TokenType) => {
21 wsCache.set(RefreshTokenKey, token.refreshToken, { exp: token.expiresTime }) 22 wsCache.set(RefreshTokenKey, token.refreshToken, { exp: token.expiresTime })
22 wsCache.set(AccessTokenKey, token.accessToken) 23 wsCache.set(AccessTokenKey, token.accessToken)
23 } 24 }
24 25
25 // 删除token 26 // 删除token
26 -export function removeToken() { 27 +export const removeToken = () => {
27 wsCache.delete(AccessTokenKey) 28 wsCache.delete(AccessTokenKey)
28 wsCache.delete(RefreshTokenKey) 29 wsCache.delete(RefreshTokenKey)
29 } 30 }
  31 +// ========== 账号相关 ==========
  32 +
  33 +const UsernameKey = 'USERNAME'
  34 +const PasswordKey = 'PASSWORD'
  35 +const RememberMeKey = 'REMEMBER_ME'
  36 +
  37 +export const getUsername = () => {
  38 + return wsCache.get(UsernameKey)
  39 +}
  40 +
  41 +export const setUsername = (username: string) => {
  42 + wsCache.set(UsernameKey, username)
  43 +}
  44 +
  45 +export const removeUsername = () => {
  46 + wsCache.delete(UsernameKey)
  47 +}
  48 +
  49 +export const getPassword = () => {
  50 + const password = wsCache.get(PasswordKey)
  51 + return password ? decrypt(password) : undefined
  52 +}
  53 +
  54 +export const setPassword = (password: string) => {
  55 + wsCache.set(PasswordKey, encrypt(password))
  56 +}
  57 +
  58 +export const removePassword = () => {
  59 + wsCache.delete(PasswordKey)
  60 +}
  61 +
  62 +export const getRememberMe = () => {
  63 + return wsCache.get(RememberMeKey) === 'true'
  64 +}
  65 +
  66 +export const setRememberMe = (rememberMe: string) => {
  67 + wsCache.set(RememberMeKey, rememberMe)
  68 +}
  69 +
  70 +export const removeRememberMe = () => {
  71 + wsCache.delete(RememberMeKey)
  72 +}
  73 +
  74 +// ========== 租户相关 ==========
  75 +
  76 +const TenantIdKey = 'TENANT_ID'
  77 +const TenantNameKey = 'TENANT_NAME'
  78 +
  79 +export const getTenantName = () => {
  80 + return wsCache.get(TenantNameKey)
  81 +}
  82 +
  83 +export const setTenantName = (username: string) => {
  84 + wsCache.set(TenantNameKey, username)
  85 +}
  86 +
  87 +export const removeTenantName = () => {
  88 + wsCache.delete(TenantNameKey)
  89 +}
  90 +
  91 +export const getTenantId = () => {
  92 + return wsCache.get(TenantIdKey)
  93 +}
  94 +
  95 +export const setTenantId = (username: string) => {
  96 + wsCache.set(TenantIdKey, username)
  97 +}
  98 +
  99 +export const removeTenantId = () => {
  100 + wsCache.delete(TenantIdKey)
  101 +}
yudao-ui-admin-vue3/src/utils/builder.ts deleted
1 -import { required as requiredRule } from '@/utils/formRules'  
2 -import dayjs from 'dayjs'  
3 -import { useI18n } from '@/hooks/web/useI18n'  
4 -const { t } = useI18n() // 国际化  
5 -  
6 -export class FormSchemaBuilder {  
7 - static input(label: string, field: string, required: Boolean = false): FormSchema {  
8 - return {  
9 - label,  
10 - field,  
11 - component: 'Input',  
12 - formItemProps: {  
13 - rules: required ? [requiredRule] : []  
14 - }  
15 - }  
16 - }  
17 - static inputNumber(  
18 - label: string,  
19 - field: string,  
20 - value: number,  
21 - required: Boolean = false  
22 - ): FormSchema {  
23 - return {  
24 - label,  
25 - field,  
26 - value,  
27 - component: 'InputNumber',  
28 - formItemProps: {  
29 - rules: required ? [requiredRule] : []  
30 - }  
31 - }  
32 - }  
33 - static radioButton(  
34 - label: string,  
35 - field: string,  
36 - value: number,  
37 - options: ComponentOptions[],  
38 - required: Boolean = false  
39 - ): FormSchema {  
40 - return {  
41 - label,  
42 - field,  
43 - component: 'RadioButton',  
44 - value,  
45 - formItemProps: {  
46 - rules: required ? [requiredRule] : []  
47 - },  
48 - componentProps: {  
49 - options  
50 - }  
51 - }  
52 - }  
53 - static select(  
54 - label: string,  
55 - field: string,  
56 - value: number | null,  
57 - options: ComponentOptions[],  
58 - required: Boolean = false  
59 - ): FormSchema {  
60 - return {  
61 - label,  
62 - field,  
63 - component: 'Select',  
64 - value,  
65 - formItemProps: {  
66 - rules: required ? [requiredRule] : []  
67 - },  
68 - componentProps: {  
69 - options  
70 - }  
71 - }  
72 - }  
73 - static textarea(  
74 - label: string,  
75 - field: string,  
76 - rows: number,  
77 - span: number,  
78 - required: Boolean = false  
79 - ): FormSchema {  
80 - return {  
81 - label,  
82 - field,  
83 - component: 'Input',  
84 - componentProps: {  
85 - type: 'textarea',  
86 - rows: rows  
87 - },  
88 - formItemProps: {  
89 - rules: required ? [requiredRule] : []  
90 - },  
91 - colProps: {  
92 - span: span  
93 - }  
94 - }  
95 - }  
96 -}  
97 -  
98 -export class TableColumnBuilder {  
99 - static column(label: string, field: string): TableColumn {  
100 - return {  
101 - label,  
102 - field  
103 - }  
104 - }  
105 - static date(label: string, field: string, template?: string): TableColumn {  
106 - return {  
107 - label,  
108 - field,  
109 - formatter: (_: Recordable, __: TableColumn, cellValue: string) => {  
110 - return dayjs(cellValue).format(template || 'YYYY-MM-DD HH:mm:ss')  
111 - }  
112 - }  
113 - }  
114 - static action(width: number): TableColumn {  
115 - return {  
116 - label: t('table.action'),  
117 - field: 'action',  
118 - width: width + 'px'  
119 - }  
120 - }  
121 -}  
122 -  
123 -export class ComponentOptionsBuilder {  
124 - static option(label: string, value: number): ComponentOptions {  
125 - return {  
126 - label,  
127 - value  
128 - }  
129 - }  
130 -}  
yudao-ui-admin-vue3/src/utils/jsencrypt.ts 0 → 100644
  1 +import { JSEncrypt } from 'jsencrypt/bin/jsencrypt.min'
  2 +
  3 +// 密钥对生成 http://web.chacuo.net/netrsakeypair
  4 +
  5 +const publicKey =
  6 + 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
  7 + 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
  8 +
  9 +const privateKey =
  10 + 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
  11 + '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
  12 + 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
  13 + 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
  14 + 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
  15 + 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
  16 + 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
  17 + 'UP8iWi1Qw0Y='
  18 +
  19 +// 加密
  20 +export const encrypt = (txt: string) => {
  21 + const encryptor = new JSEncrypt()
  22 + encryptor.setPublicKey(publicKey) // 设置公钥
  23 + return encryptor.encrypt(txt) // 对数据进行加密
  24 +}
  25 +
  26 +// 解密
  27 +export const decrypt = (txt: string) => {
  28 + const encryptor = new JSEncrypt()
  29 + encryptor.setPrivateKey(privateKey) // 设置私钥
  30 + return encryptor.decrypt(txt) // 对数据进行解密
  31 +}
yudao-ui-admin-vue3/src/utils/routerHelper.ts
@@ -94,13 +94,13 @@ export const generateRoutes = (routes: AppCustomRouteRecordRaw[]): AppRouteRecor @@ -94,13 +94,13 @@ export const generateRoutes = (routes: AppCustomRouteRecordRaw[]): AppRouteRecor
94 } 94 }
95 return res 95 return res
96 } 96 }
97 -export const getRedirect = (parentPath: string, children: Array<Object>) => { 97 +export const getRedirect = (parentPath: string, children: AppCustomRouteRecordRaw[]) => {
98 if (!children || children.length == 0) { 98 if (!children || children.length == 0) {
99 return parentPath 99 return parentPath
100 } 100 }
101 - const path = generateRoutePath(parentPath, children[0]?.path) 101 + const path = generateRoutePath(parentPath, children[0].path)
102 // 递归子节点 102 // 递归子节点
103 - return getRedirect(path, children[0]?.children) 103 + if (children[0].children) return getRedirect(path, children[0].children)
104 } 104 }
105 const generateRoutePath = (parentPath: string, path: string) => { 105 const generateRoutePath = (parentPath: string, path: string) => {
106 if (parentPath.endsWith('/')) { 106 if (parentPath.endsWith('/')) {
yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue
@@ -12,8 +12,8 @@ import { @@ -12,8 +12,8 @@ import {
12 ElDivider 12 ElDivider
13 } from 'element-plus' 13 } from 'element-plus'
14 import { reactive, ref, unref, onMounted, computed, watch } from 'vue' 14 import { reactive, ref, unref, onMounted, computed, watch } from 'vue'
15 -import { getCodeImgApi, getTenantIdByNameApi, loginApi, getAsyncRoutesApi } from '@/api/login'  
16 -import { setToken } from '@/utils/auth' 15 +import * as LoginApi from '@/api/login'
  16 +import { setToken, setTenantId } from '@/utils/auth'
17 import { useUserStoreWithOut } from '@/store/modules/user' 17 import { useUserStoreWithOut } from '@/store/modules/user'
18 import { useCache } from '@/hooks/web/useCache' 18 import { useCache } from '@/hooks/web/useCache'
19 import { usePermissionStore } from '@/store/modules/permission' 19 import { usePermissionStore } from '@/store/modules/permission'
@@ -68,14 +68,14 @@ const loginData = reactive({ @@ -68,14 +68,14 @@ const loginData = reactive({
68 68
69 // 获取验证码 69 // 获取验证码
70 const getCode = async () => { 70 const getCode = async () => {
71 - const res = await getCodeImgApi() 71 + const res = await LoginApi.getCodeImgApi()
72 loginData.codeImg = 'data:image/gif;base64,' + res.img 72 loginData.codeImg = 'data:image/gif;base64,' + res.img
73 loginData.loginForm.uuid = res.uuid 73 loginData.loginForm.uuid = res.uuid
74 } 74 }
75 //获取租户ID 75 //获取租户ID
76 const getTenantId = async () => { 76 const getTenantId = async () => {
77 - const res = await getTenantIdByNameApi(loginData.loginForm.tenantName)  
78 - wsCache.set('tenantId', res) 77 + const res = await LoginApi.getTenantIdByNameApi(loginData.loginForm.tenantName)
  78 + setTenantId(res)
79 } 79 }
80 // 登录 80 // 登录
81 const handleLogin = async () => { 81 const handleLogin = async () => {
@@ -83,10 +83,11 @@ const handleLogin = async () =&gt; { @@ -83,10 +83,11 @@ const handleLogin = async () =&gt; {
83 const data = await validForm() 83 const data = await validForm()
84 if (!data) return 84 if (!data) return
85 loginLoading.value = true 85 loginLoading.value = true
86 - await loginApi(loginData.loginForm) 86 + await LoginApi.loginApi(loginData.loginForm)
87 .then(async (res) => { 87 .then(async (res) => {
88 setToken(res) 88 setToken(res)
89 - await userStore.getUserInfoAction() 89 + const userInfo = await LoginApi.getInfoApi()
  90 + await userStore.getUserInfoAction(userInfo)
90 await getRoutes() 91 await getRoutes()
91 }) 92 })
92 .catch(() => { 93 .catch(() => {
@@ -100,9 +101,9 @@ const handleLogin = async () =&gt; { @@ -100,9 +101,9 @@ const handleLogin = async () =&gt; {
100 // 获取路由 101 // 获取路由
101 const getRoutes = async () => { 102 const getRoutes = async () => {
102 // 后端过滤菜单 103 // 后端过滤菜单
103 - const routers = await getAsyncRoutesApi()  
104 - wsCache.set('roleRouters', routers)  
105 - await permissionStore.generateRoutes(routers).catch(() => {}) 104 + const res = await LoginApi.getAsyncRoutesApi()
  105 + wsCache.set('roleRouters', res)
  106 + await permissionStore.generateRoutes(res).catch(() => {})
106 permissionStore.getAddRouters.forEach((route) => { 107 permissionStore.getAddRouters.forEach((route) => {
107 addRoute(route as RouteRecordRaw) // 动态添加可访问路由表 108 addRoute(route as RouteRecordRaw) // 动态添加可访问路由表
108 }) 109 })
yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
1 <script setup lang="ts"> 1 <script setup lang="ts">
2 import { useIcon } from '@/hooks/web/useIcon' 2 import { useIcon } from '@/hooks/web/useIcon'
3 -import { reactive, ref, unref, watch, onMounted, computed } from 'vue' 3 +import { reactive, ref, unref, watch, computed } from 'vue'
4 import LoginFormTitle from './LoginFormTitle.vue' 4 import LoginFormTitle from './LoginFormTitle.vue'
5 import { ElForm, ElFormItem, ElInput, ElRow, ElCol, ElMessage } from 'element-plus' 5 import { ElForm, ElFormItem, ElInput, ElRow, ElCol, ElMessage } from 'element-plus'
6 import { useI18n } from '@/hooks/web/useI18n' 6 import { useI18n } from '@/hooks/web/useI18n'
7 import { required } from '@/utils/formRules' 7 import { required } from '@/utils/formRules'
8 import { 8 import {
9 getTenantIdByNameApi, 9 getTenantIdByNameApi,
10 - getCodeImgApi,  
11 getAsyncRoutesApi, 10 getAsyncRoutesApi,
12 sendSmsCodeApi, 11 sendSmsCodeApi,
13 - smsLoginApi 12 + smsLoginApi,
  13 + getInfoApi
14 } from '@/api/login' 14 } from '@/api/login'
15 import { useCache } from '@/hooks/web/useCache' 15 import { useCache } from '@/hooks/web/useCache'
16 import { usePermissionStore } from '@/store/modules/permission' 16 import { usePermissionStore } from '@/store/modules/permission'
@@ -98,12 +98,6 @@ watch( @@ -98,12 +98,6 @@ watch(
98 immediate: true 98 immediate: true
99 } 99 }
100 ) 100 )
101 -// 获取验证码 TODO @jinz:是不是可以去掉?手机这里暂时不用验证码  
102 -const getCode = async () => {  
103 - const res = await getCodeImgApi()  
104 - loginData.codeImg = 'data:image/gif;base64,' + res.img  
105 - loginData.loginForm.uuid = res.uuid  
106 -}  
107 // 获取租户 ID 101 // 获取租户 ID
108 const getTenantId = async () => { 102 const getTenantId = async () => {
109 const res = await getTenantIdByNameApi(loginData.loginForm.tenantName) 103 const res = await getTenantIdByNameApi(loginData.loginForm.tenantName)
@@ -120,7 +114,8 @@ const signIn = async () =&gt; { @@ -120,7 +114,8 @@ const signIn = async () =&gt; {
120 await smsLoginApi(smsVO.loginSms) 114 await smsLoginApi(smsVO.loginSms)
121 .then(async (res) => { 115 .then(async (res) => {
122 setToken(res?.token) 116 setToken(res?.token)
123 - await userStore.getUserInfoAction() 117 + const userInfo = await getInfoApi()
  118 + await userStore.getUserInfoAction(userInfo)
124 getRoutes() 119 getRoutes()
125 }) 120 })
126 .catch(() => {}) 121 .catch(() => {})
@@ -141,9 +136,6 @@ const getRoutes = async () =&gt; { @@ -141,9 +136,6 @@ const getRoutes = async () =&gt; {
141 permissionStore.setIsAddRouters(true) 136 permissionStore.setIsAddRouters(true)
142 push({ path: redirect.value || permissionStore.addRouters[0].path }) 137 push({ path: redirect.value || permissionStore.addRouters[0].path })
143 } 138 }
144 -onMounted(() => {  
145 - getCode()  
146 -})  
147 </script> 139 </script>
148 <template> 140 <template>
149 <el-form 141 <el-form
yudao-ui-admin-vue3/src/views/Login/components/index.ts
@@ -2,4 +2,4 @@ import LoginForm from &#39;./LoginForm.vue&#39; @@ -2,4 +2,4 @@ import LoginForm from &#39;./LoginForm.vue&#39;
2 import MobileForm from './MobileForm.vue' 2 import MobileForm from './MobileForm.vue'
3 import LoginFormTitle from './LoginFormTitle.vue' 3 import LoginFormTitle from './LoginFormTitle.vue'
4 4
5 -export {LoginForm, MobileForm, LoginFormTitle} 5 +export { LoginForm, MobileForm, LoginFormTitle }
yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
1 import { ref, computed, unref, Ref } from 'vue' 1 import { ref, computed, unref, Ref } from 'vue'
2 -import { useI18n } from '@/hooks/web/useI18n'  
3 2
4 export enum LoginStateEnum { 3 export enum LoginStateEnum {
5 LOGIN, 4 LOGIN,
@@ -40,72 +39,3 @@ export function useFormValid&lt;T extends Object = any&gt;(formRef: Ref&lt;any&gt;) { @@ -40,72 +39,3 @@ export function useFormValid&lt;T extends Object = any&gt;(formRef: Ref&lt;any&gt;) {
40 validForm 39 validForm
41 } 40 }
42 } 41 }
43 -  
44 - const getFormRules = computed(  
45 - (): {  
46 - [k: string]: ValidationRule | ValidationRule[]  
47 - } => {  
48 - const accountFormRule = unref(getAccountFormRule)  
49 - const passwordFormRule = unref(getPasswordFormRule)  
50 - const smsFormRule = unref(getSmsFormRule)  
51 - const mobileFormRule = unref(getMobileFormRule)  
52 -  
53 - const mobileRule = {  
54 - sms: smsFormRule,  
55 - mobile: mobileFormRule  
56 - }  
57 - switch (unref(currentState)) {  
58 - // register form rules  
59 - case LoginStateEnum.REGISTER:  
60 - return {  
61 - account: accountFormRule,  
62 - password: passwordFormRule,  
63 - confirmPassword: [  
64 - {  
65 - validator: validateConfirmPassword(formData?.password),  
66 - trigger: 'change'  
67 - }  
68 - ],  
69 - policy: [  
70 - {  
71 - validator: validatePolicy,  
72 - trigger: 'change'  
73 - }  
74 - ],  
75 - ...mobileRule  
76 - }  
77 -  
78 - // reset password form rules  
79 - case LoginStateEnum.RESET_PASSWORD:  
80 - return {  
81 - account: accountFormRule,  
82 - ...mobileRule  
83 - }  
84 -  
85 - // mobile form rules  
86 - case LoginStateEnum.MOBILE:  
87 - return mobileRule  
88 -  
89 - // login form rules  
90 - default:  
91 - return {  
92 - account: accountFormRule,  
93 - password: passwordFormRule  
94 - }  
95 - }  
96 - }  
97 - )  
98 - return {  
99 - getFormRules  
100 - }  
101 -}  
102 -  
103 -function createRule(message: string) {  
104 - return [  
105 - {  
106 - required: true,  
107 - message,  
108 - trigger: 'change'  
109 - }  
110 - ]  
111 -}  
yudao-ui-admin-vue3/src/views/Profile/components/UserAvatar.vue
@@ -53,7 +53,9 @@ const beforeUpload = (file: Blob) =&gt; { @@ -53,7 +53,9 @@ const beforeUpload = (file: Blob) =&gt; {
53 const reader = new FileReader() 53 const reader = new FileReader()
54 reader.readAsDataURL(file) 54 reader.readAsDataURL(file)
55 reader.onload = () => { 55 reader.onload = () => {
56 - state.options.img = reader.result 56 + if (reader.result) {
  57 + state.options.img = reader.result as string
  58 + }
57 } 59 }
58 } 60 }
59 } 61 }
yudao-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue
@@ -10,7 +10,7 @@ import * as ApiAccessLogApi from &#39;@/api/infra/apiAccessLog&#39; @@ -10,7 +10,7 @@ import * as ApiAccessLogApi from &#39;@/api/infra/apiAccessLog&#39;
10 const { t } = useI18n() // 国际化 10 const { t } = useI18n() // 国际化
11 11
12 // ========== 列表相关 ========== 12 // ========== 列表相关 ==========
13 -const { register, tableObject, methods } = useTable<PageResult<ApiAccessLogVO>, ApiAccessLogVO>({ 13 +const { register, tableObject, methods } = useTable<ApiAccessLogVO>({
14 getListApi: ApiAccessLogApi.getApiAccessLogPageApi 14 getListApi: ApiAccessLogApi.getApiAccessLogPageApi
15 }) 15 })
16 const { getList, setSearchParams } = methods 16 const { getList, setSearchParams } = methods
yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
@@ -12,7 +12,7 @@ import { ElMessage, ElMessageBox } from &#39;element-plus&#39; @@ -12,7 +12,7 @@ import { ElMessage, ElMessageBox } from &#39;element-plus&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<ApiErrorLogVO>, ApiErrorLogVO>({ 15 +const { register, tableObject, methods } = useTable<ApiErrorLogVO>({
16 getListApi: ApiErrorLogApi.getApiErrorLogPageApi, 16 getListApi: ApiErrorLogApi.getApiErrorLogPageApi,
17 exportListApi: ApiErrorLogApi.exportApiErrorLogApi 17 exportListApi: ApiErrorLogApi.exportApiErrorLogApi
18 }) 18 })
yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
@@ -14,7 +14,7 @@ import { ElMessage, ElMessageBox } from &#39;element-plus&#39; @@ -14,7 +14,7 @@ import { ElMessage, ElMessageBox } from &#39;element-plus&#39;
14 const { t } = useI18n() // 国际化 14 const { t } = useI18n() // 国际化
15 const { push } = useRouter() 15 const { push } = useRouter()
16 // ========== 列表相关 ========== 16 // ========== 列表相关 ==========
17 -const { register, tableObject, methods } = useTable<PageResult<CodegenTableVO>, CodegenTableVO>({ 17 +const { register, tableObject, methods } = useTable<CodegenTableVO>({
18 getListApi: CodegenApi.getCodegenTablePageApi, 18 getListApi: CodegenApi.getCodegenTablePageApi,
19 delListApi: CodegenApi.deleteCodegenTableApi 19 delListApi: CodegenApi.deleteCodegenTableApi
20 }) 20 })
@@ -71,7 +71,7 @@ getList() @@ -71,7 +71,7 @@ getList()
71 <!-- 操作工具栏 --> 71 <!-- 操作工具栏 -->
72 <div class="mb-10px"> 72 <div class="mb-10px">
73 <el-button type="primary" v-hasPermi="['infra:codegen:create']" @click="openImportTable"> 73 <el-button type="primary" v-hasPermi="['infra:codegen:create']" @click="openImportTable">
74 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.import') }} 74 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.import') }}
75 </el-button> 75 </el-button>
76 </div> 76 </div>
77 <!-- 列表 --> 77 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/infra/config/index.vue
@@ -12,7 +12,7 @@ import * as ConfigApi from &#39;@/api/infra/config&#39; @@ -12,7 +12,7 @@ import * as ConfigApi from &#39;@/api/infra/config&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<ConfigVO>, ConfigVO>({ 15 +const { register, tableObject, methods } = useTable<ConfigVO>({
16 getListApi: ConfigApi.getConfigPageApi, 16 getListApi: ConfigApi.getConfigPageApi,
17 delListApi: ConfigApi.deleteConfigApi, 17 delListApi: ConfigApi.deleteConfigApi,
18 exportListApi: ConfigApi.exportConfigApi 18 exportListApi: ConfigApi.exportConfigApi
@@ -102,7 +102,7 @@ getList() @@ -102,7 +102,7 @@ getList()
102 <!-- 操作工具栏 --> 102 <!-- 操作工具栏 -->
103 <div class="mb-10px"> 103 <div class="mb-10px">
104 <el-button type="primary" v-hasPermi="['infra:config:create']" @click="handleCreate"> 104 <el-button type="primary" v-hasPermi="['infra:config:create']" @click="handleCreate">
105 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 105 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
106 </el-button> 106 </el-button>
107 <el-button 107 <el-button
108 type="warning" 108 type="warning"
yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
@@ -92,7 +92,7 @@ onMounted(async () =&gt; { @@ -92,7 +92,7 @@ onMounted(async () =&gt; {
92 type="primary" 92 type="primary"
93 @click="handleCreate" 93 @click="handleCreate"
94 > 94 >
95 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 95 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
96 </el-button> 96 </el-button>
97 </div> 97 </div>
98 <Table :columns="allSchemas.tableColumns" :data="tableData"> 98 <Table :columns="allSchemas.tableColumns" :data="tableData">
yudao-ui-admin-vue3/src/views/infra/file/index.vue
@@ -12,7 +12,7 @@ const { wsCache } = useCache() @@ -12,7 +12,7 @@ const { wsCache } = useCache()
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<FileVO>, FileVO>({ 15 +const { register, tableObject, methods } = useTable<FileVO>({
16 getListApi: FileApi.getFilePageApi, 16 getListApi: FileApi.getFilePageApi,
17 delListApi: FileApi.deleteFileApi 17 delListApi: FileApi.deleteFileApi
18 }) 18 })
yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
@@ -12,7 +12,7 @@ import * as FileConfigApi from &#39;@/api/infra/fileConfig&#39; @@ -12,7 +12,7 @@ import * as FileConfigApi from &#39;@/api/infra/fileConfig&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<FileConfigVO>, FileConfigVO>({ 15 +const { register, tableObject, methods } = useTable<FileConfigVO>({
16 getListApi: FileConfigApi.getFileConfigPageApi, 16 getListApi: FileConfigApi.getFileConfigPageApi,
17 delListApi: FileConfigApi.deleteFileConfigApi 17 delListApi: FileConfigApi.deleteFileConfigApi
18 }) 18 })
@@ -110,7 +110,7 @@ getList() @@ -110,7 +110,7 @@ getList()
110 <!-- 操作工具栏 --> 110 <!-- 操作工具栏 -->
111 <div class="mb-10px"> 111 <div class="mb-10px">
112 <el-button type="primary" v-hasPermi="['infra:file-config:create']" @click="handleCreate"> 112 <el-button type="primary" v-hasPermi="['infra:file-config:create']" @click="handleCreate">
113 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 113 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
114 </el-button> 114 </el-button>
115 </div> 115 </div>
116 <!-- 列表 --> 116 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
@@ -13,14 +13,14 @@ import { allSchemas } from &#39;./jobLog.data&#39; @@ -13,14 +13,14 @@ import { allSchemas } from &#39;./jobLog.data&#39;
13 const { t } = useI18n() // 国际化 13 const { t } = useI18n() // 国际化
14 const { query } = useRoute() 14 const { query } = useRoute()
15 // ========== 列表相关 ========== 15 // ========== 列表相关 ==========
16 -const { register, tableObject, methods } = useTable<PageResult<JobLogVO>, JobLogVO>({ 16 +const { register, tableObject, methods } = useTable<JobLogVO>({
17 getListApi: JobLogApi.getJobLogPageApi, 17 getListApi: JobLogApi.getJobLogPageApi,
18 exportListApi: JobLogApi.exportJobLogApi 18 exportListApi: JobLogApi.exportJobLogApi
19 }) 19 })
20 const { getList, setSearchParams, exportList } = methods 20 const { getList, setSearchParams, exportList } = methods
21 const getTableList = async () => { 21 const getTableList = async () => {
22 const id = (query.id as unknown as number) && (query.jobId as unknown as number) 22 const id = (query.id as unknown as number) && (query.jobId as unknown as number)
23 - tableObject.paramsObj.params = { 23 + tableObject.params = {
24 jobId: id 24 jobId: id
25 } 25 }
26 await getList() 26 await getList()
yudao-ui-admin-vue3/src/views/infra/job/index.vue
@@ -14,7 +14,7 @@ import { useRouter } from &#39;vue-router&#39; @@ -14,7 +14,7 @@ import { useRouter } from &#39;vue-router&#39;
14 const { t } = useI18n() // 国际化 14 const { t } = useI18n() // 国际化
15 const { push } = useRouter() 15 const { push } = useRouter()
16 // ========== 列表相关 ========== 16 // ========== 列表相关 ==========
17 -const { register, tableObject, methods } = useTable<PageResult<JobVO>, JobVO>({ 17 +const { register, tableObject, methods } = useTable<JobVO>({
18 getListApi: JobApi.getJobPageApi, 18 getListApi: JobApi.getJobPageApi,
19 delListApi: JobApi.deleteJobApi, 19 delListApi: JobApi.deleteJobApi,
20 exportListApi: JobApi.exportJobApi 20 exportListApi: JobApi.exportJobApi
@@ -126,7 +126,7 @@ getList() @@ -126,7 +126,7 @@ getList()
126 <!-- 操作工具栏 --> 126 <!-- 操作工具栏 -->
127 <div class="mb-10px"> 127 <div class="mb-10px">
128 <el-button type="primary" v-hasPermi="['infra:job:create']" @click="handleCreate"> 128 <el-button type="primary" v-hasPermi="['infra:job:create']" @click="handleCreate">
129 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 129 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
130 </el-button> 130 </el-button>
131 <el-button 131 <el-button
132 type="warning" 132 type="warning"
@@ -137,7 +137,7 @@ getList() @@ -137,7 +137,7 @@ getList()
137 <Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }} 137 <Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }}
138 </el-button> 138 </el-button>
139 <el-button type="info" v-hasPermi="['infra:job:query']" @click="handleJobLog"> 139 <el-button type="info" v-hasPermi="['infra:job:query']" @click="handleJobLog">
140 - <Icon icon="el:zoom-in" class="mr-5px" /> 执行日志 140 + <Icon icon="ep:zoom-in" class="mr-5px" /> 执行日志
141 </el-button> 141 </el-button>
142 </div> 142 </div>
143 <!-- 列表 --> 143 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/infra/redis/index.vue
@@ -20,10 +20,10 @@ const keyListLoad = ref(true) @@ -20,10 +20,10 @@ const keyListLoad = ref(true)
20 const keyList = ref<RedisKeyInfo[]>([]) 20 const keyList = ref<RedisKeyInfo[]>([])
21 // 基本信息 21 // 基本信息
22 const readRedisInfo = async () => { 22 const readRedisInfo = async () => {
23 - const data = await RedisApi.redisMonitorInfo() 23 + const data = await RedisApi.getCacheApi()
24 cache.value = data 24 cache.value = data
25 - loadEchartOptions(cache.value.commandStats)  
26 - const redisKeysInfo = await RedisApi.redisKeysInfo() 25 + loadEchartOptions(data.commandStats)
  26 + const redisKeysInfo = await RedisApi.getKeyDefineListApi()
27 keyList.value = redisKeysInfo 27 keyList.value = redisKeysInfo
28 keyListLoad.value = false //加载完成 28 keyListLoad.value = false //加载完成
29 } 29 }
yudao-ui-admin-vue3/src/views/pay/app/index.vue
@@ -12,7 +12,7 @@ import * as AppApi from &#39;@/api/pay/app&#39; @@ -12,7 +12,7 @@ import * as AppApi from &#39;@/api/pay/app&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<AppVO>, AppVO>({ 15 +const { register, tableObject, methods } = useTable<AppVO>({
16 getListApi: AppApi.getAppPageApi, 16 getListApi: AppApi.getAppPageApi,
17 delListApi: AppApi.deleteAppApi, 17 delListApi: AppApi.deleteAppApi,
18 exportListApi: AppApi.exportAppApi 18 exportListApi: AppApi.exportAppApi
@@ -102,7 +102,7 @@ getList() @@ -102,7 +102,7 @@ getList()
102 <!-- 操作工具栏 --> 102 <!-- 操作工具栏 -->
103 <div class="mb-10px"> 103 <div class="mb-10px">
104 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate"> 104 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate">
105 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 105 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
106 </el-button> 106 </el-button>
107 <el-button 107 <el-button
108 type="warning" 108 type="warning"
yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
@@ -12,7 +12,7 @@ import * as MerchantApi from &#39;@/api/pay/merchant&#39; @@ -12,7 +12,7 @@ import * as MerchantApi from &#39;@/api/pay/merchant&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<MerchantVO>, MerchantVO>({ 15 +const { register, tableObject, methods } = useTable<MerchantVO>({
16 getListApi: MerchantApi.getMerchantPageApi, 16 getListApi: MerchantApi.getMerchantPageApi,
17 delListApi: MerchantApi.deleteMerchantApi, 17 delListApi: MerchantApi.deleteMerchantApi,
18 exportListApi: MerchantApi.exportMerchantApi 18 exportListApi: MerchantApi.exportMerchantApi
@@ -102,7 +102,7 @@ getList() @@ -102,7 +102,7 @@ getList()
102 <!-- 操作工具栏 --> 102 <!-- 操作工具栏 -->
103 <div class="mb-10px"> 103 <div class="mb-10px">
104 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate"> 104 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate">
105 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 105 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
106 </el-button> 106 </el-button>
107 <el-button 107 <el-button
108 type="warning" 108 type="warning"
yudao-ui-admin-vue3/src/views/pay/order/index.vue
@@ -11,7 +11,7 @@ import { rules, allSchemas } from &#39;./order.data&#39; @@ -11,7 +11,7 @@ import { rules, allSchemas } from &#39;./order.data&#39;
11 import * as OrderApi from '@/api/pay/order' 11 import * as OrderApi from '@/api/pay/order'
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 // ========== 列表相关 ========== 13 // ========== 列表相关 ==========
14 -const { register, tableObject, methods } = useTable<PageResult<OrderVO>, OrderVO>({ 14 +const { register, tableObject, methods } = useTable<OrderVO>({
15 getListApi: OrderApi.getOrderPageApi, 15 getListApi: OrderApi.getOrderPageApi,
16 delListApi: OrderApi.deleteOrderApi, 16 delListApi: OrderApi.deleteOrderApi,
17 exportListApi: OrderApi.exportOrderApi 17 exportListApi: OrderApi.exportOrderApi
@@ -99,7 +99,7 @@ getList() @@ -99,7 +99,7 @@ getList()
99 <!-- 操作工具栏 --> 99 <!-- 操作工具栏 -->
100 <div class="mb-10px"> 100 <div class="mb-10px">
101 <el-button type="primary" v-hasPermi="['pay:order:create']" @click="handleCreate"> 101 <el-button type="primary" v-hasPermi="['pay:order:create']" @click="handleCreate">
102 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 102 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
103 </el-button> 103 </el-button>
104 <el-button 104 <el-button
105 type="warning" 105 type="warning"
yudao-ui-admin-vue3/src/views/pay/refund/index.vue
@@ -10,7 +10,7 @@ import * as RefundApi from &#39;@/api/pay/refund&#39; @@ -10,7 +10,7 @@ import * as RefundApi from &#39;@/api/pay/refund&#39;
10 const { t } = useI18n() // 国际化 10 const { t } = useI18n() // 国际化
11 11
12 // ========== 列表相关 ========== 12 // ========== 列表相关 ==========
13 -const { register, tableObject, methods } = useTable<PageResult<RefundVO>, RefundVO>({ 13 +const { register, tableObject, methods } = useTable<RefundVO>({
14 getListApi: RefundApi.getRefundPageApi, 14 getListApi: RefundApi.getRefundPageApi,
15 delListApi: RefundApi.deleteRefundApi, 15 delListApi: RefundApi.deleteRefundApi,
16 exportListApi: RefundApi.exportRefundApi 16 exportListApi: RefundApi.exportRefundApi
yudao-ui-admin-vue3/src/views/system/dict/index.vue
@@ -16,7 +16,7 @@ const { @@ -16,7 +16,7 @@ const {
16 register: typeRegister, 16 register: typeRegister,
17 tableObject: typeTableObject, 17 tableObject: typeTableObject,
18 methods: typeMethods 18 methods: typeMethods
19 -} = useTable<PageResult<DictTypeVO>, DictTypeVO>({ 19 +} = useTable<DictTypeVO>({
20 getListApi: DictTypeApi.getDictTypePageApi, 20 getListApi: DictTypeApi.getDictTypePageApi,
21 delListApi: DictTypeApi.deleteDictTypeApi 21 delListApi: DictTypeApi.deleteDictTypeApi
22 }) 22 })
@@ -49,7 +49,7 @@ const { @@ -49,7 +49,7 @@ const {
49 register: dataRegister, 49 register: dataRegister,
50 tableObject: dataTableObject, 50 tableObject: dataTableObject,
51 methods: dataMethods 51 methods: dataMethods
52 -} = useTable<PageResult<DictDataVO>, DictDataVO>({ 52 +} = useTable<DictDataVO>({
53 getListApi: DictDataApi.getDictDataPageApi, 53 getListApi: DictDataApi.getDictDataPageApi,
54 delListApi: DictDataApi.deleteDictDataApi 54 delListApi: DictDataApi.deleteDictDataApi
55 }) 55 })
@@ -79,7 +79,7 @@ const handleDataDelete = async (row: DictTypeVO) =&gt; { @@ -79,7 +79,7 @@ const handleDataDelete = async (row: DictTypeVO) =&gt; {
79 const parentType = ref('') 79 const parentType = ref('')
80 const onClickType = async (data: { [key: string]: any }) => { 80 const onClickType = async (data: { [key: string]: any }) => {
81 tableTypeSelect.value = true 81 tableTypeSelect.value = true
82 - dataTableObject.paramsObj.params = { 82 + dataTableObject.params = {
83 dictType: data.type 83 dictType: data.type
84 } 84 }
85 getDataList() 85 getDataList()
@@ -161,7 +161,7 @@ onMounted(async () =&gt; { @@ -161,7 +161,7 @@ onMounted(async () =&gt; {
161 <!-- 操作工具栏 --> 161 <!-- 操作工具栏 -->
162 <div class="mb-10px"> 162 <div class="mb-10px">
163 <el-button type="primary" v-hasPermi="['system:dict:create']" @click="handleTypeCreate"> 163 <el-button type="primary" v-hasPermi="['system:dict:create']" @click="handleTypeCreate">
164 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 164 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
165 </el-button> 165 </el-button>
166 </div> 166 </div>
167 <!-- 列表 --> 167 <!-- 列表 -->
@@ -221,7 +221,7 @@ onMounted(async () =&gt; { @@ -221,7 +221,7 @@ onMounted(async () =&gt; {
221 <!-- 操作工具栏 --> 221 <!-- 操作工具栏 -->
222 <div class="mb-10px"> 222 <div class="mb-10px">
223 <el-button type="primary" v-hasPermi="['system:dict:create']" @click="handleDataCreate"> 223 <el-button type="primary" v-hasPermi="['system:dict:create']" @click="handleDataCreate">
224 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 224 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
225 </el-button> 225 </el-button>
226 </div> 226 </div>
227 <Table 227 <Table
yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
@@ -12,7 +12,7 @@ import * as ErrorCodeApi from &#39;@/api/system/errorCode&#39; @@ -12,7 +12,7 @@ import * as ErrorCodeApi from &#39;@/api/system/errorCode&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<ErrorCodeVO>, ErrorCodeVO>({ 15 +const { register, tableObject, methods } = useTable<ErrorCodeVO>({
16 getListApi: ErrorCodeApi.getErrorCodePageApi, 16 getListApi: ErrorCodeApi.getErrorCodePageApi,
17 delListApi: ErrorCodeApi.deleteErrorCodeApi 17 delListApi: ErrorCodeApi.deleteErrorCodeApi
18 }) 18 })
@@ -96,7 +96,7 @@ getList() @@ -96,7 +96,7 @@ getList()
96 <!-- 操作工具栏 --> 96 <!-- 操作工具栏 -->
97 <div class="mb-10px"> 97 <div class="mb-10px">
98 <el-button v-hasPermi="['system:error-code:create']" type="primary" @click="handleCreate"> 98 <el-button v-hasPermi="['system:error-code:create']" type="primary" @click="handleCreate">
99 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 99 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
100 </el-button> 100 </el-button>
101 </div> 101 </div>
102 <!-- 列表 --> 102 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
@@ -10,7 +10,7 @@ import { useI18n } from &#39;@/hooks/web/useI18n&#39; @@ -10,7 +10,7 @@ import { useI18n } from &#39;@/hooks/web/useI18n&#39;
10 10
11 const { t } = useI18n() // 国际化 11 const { t } = useI18n() // 国际化
12 // ========== 列表相关 ========== 12 // ========== 列表相关 ==========
13 -const { register, tableObject, methods } = useTable<PageResult<LoginLogVO>, LoginLogVO>({ 13 +const { register, tableObject, methods } = useTable<LoginLogVO>({
14 getListApi: getLoginLogPageApi, 14 getListApi: getLoginLogPageApi,
15 exportListApi: exportLoginLogApi 15 exportListApi: exportLoginLogApi
16 }) 16 })
yudao-ui-admin-vue3/src/views/system/loginlog/loginLog.data.ts
@@ -80,7 +80,7 @@ const crudSchemas = reactive&lt;CrudSchema[]&gt;([ @@ -80,7 +80,7 @@ const crudSchemas = reactive&lt;CrudSchema[]&gt;([
80 { 80 {
81 label: t('table.action'), 81 label: t('table.action'),
82 field: 'action', 82 field: 'action',
83 - width: '80px', 83 + width: '120px',
84 form: { 84 form: {
85 show: false 85 show: false
86 }, 86 },
yudao-ui-admin-vue3/src/views/system/menu/index.vue
@@ -195,7 +195,7 @@ onMounted(async () =&gt; { @@ -195,7 +195,7 @@ onMounted(async () =&gt; {
195 <ContentWrap> 195 <ContentWrap>
196 <div class="mb-10px"> 196 <div class="mb-10px">
197 <el-button type="primary" v-hasPermi="['system:notice:create']" @click="handleCreate"> 197 <el-button type="primary" v-hasPermi="['system:notice:create']" @click="handleCreate">
198 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 198 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
199 </el-button> 199 </el-button>
200 </div> 200 </div>
201 <el-table 201 <el-table
yudao-ui-admin-vue3/src/views/system/menu/menu.data.ts deleted
1 -import { reactive } from 'vue'  
2 -import { required } from '@/utils/formRules'  
3 -import { useI18n } from '@/hooks/web/useI18n'  
4 -// 国际化  
5 -const { t } = useI18n()  
6 -// 修改  
7 -export const modelSchema = reactive<FormSchema[]>([  
8 - {  
9 - label: '上级菜单',  
10 - field: 'parentId',  
11 - component: 'Input',  
12 - formItemProps: {  
13 - rules: [required]  
14 - }  
15 - },  
16 - {  
17 - label: '菜单类型',  
18 - field: 'type',  
19 - component: 'RadioButton',  
20 - formItemProps: {  
21 - rules: [required]  
22 - },  
23 - componentProps: {  
24 - options: [  
25 - {  
26 - label: '目录',  
27 - value: 1  
28 - },  
29 - {  
30 - label: '菜单',  
31 - value: 2  
32 - },  
33 - {  
34 - label: '按钮',  
35 - value: 3  
36 - }  
37 - ]  
38 - }  
39 - },  
40 - {  
41 - label: '菜单图标',  
42 - field: 'icon',  
43 - component: 'Input',  
44 - formItemProps: {  
45 - rules: [required]  
46 - }  
47 - },  
48 - {  
49 - label: '菜单名称',  
50 - field: 'name',  
51 - component: 'Input',  
52 - formItemProps: {  
53 - rules: [required]  
54 - }  
55 - },  
56 - {  
57 - label: '显示排序',  
58 - field: 'sort',  
59 - component: 'Input'  
60 - },  
61 - {  
62 - label: '路由地址',  
63 - field: 'path',  
64 - component: 'Input',  
65 - labelMessage: '访问的路由地址,如:`user`。如需外网地址时,则以 `http(s)://` 开头'  
66 - },  
67 - {  
68 - label: '组件路径',  
69 - field: 'component',  
70 - component: 'Input'  
71 - },  
72 - {  
73 - label: '权限标识',  
74 - field: 'permission',  
75 - component: 'Input',  
76 - labelMessage:  
77 - 'Controller 方法上的权限字符,如:@PreAuthorize(`@ss.hasPermission(`system:user:list`)`)'  
78 - },  
79 - {  
80 - label: t('common.status'),  
81 - field: 'status',  
82 - component: 'RadioButton',  
83 - value: 0,  
84 - formItemProps: {  
85 - rules: [required]  
86 - },  
87 - componentProps: {  
88 - options: [  
89 - {  
90 - label: '开启',  
91 - value: 0  
92 - },  
93 - {  
94 - label: '关闭',  
95 - value: 1  
96 - }  
97 - ]  
98 - },  
99 - labelMessage: '选择停用时,路由将不会出现在侧边栏,也不能被访问'  
100 - },  
101 - {  
102 - label: '是否显示',  
103 - field: 'visible',  
104 - component: 'RadioButton',  
105 - value: 0,  
106 - formItemProps: {  
107 - rules: [required]  
108 - },  
109 - componentProps: {  
110 - options: [  
111 - {  
112 - label: '显示',  
113 - value: 0  
114 - },  
115 - {  
116 - label: '隐藏',  
117 - value: 1  
118 - }  
119 - ]  
120 - },  
121 - labelMessage: '选择隐藏时,路由将不会出现在侧边栏,但仍然可以访问'  
122 - },  
123 - {  
124 - label: '是否缓存',  
125 - field: 'keepAlive',  
126 - component: 'RadioButton',  
127 - value: 0,  
128 - componentProps: {  
129 - options: [  
130 - {  
131 - label: '缓存',  
132 - value: 0  
133 - },  
134 - {  
135 - label: '不缓存',  
136 - value: 1  
137 - }  
138 - ]  
139 - },  
140 - labelMessage: '选择缓存时,则会被 `keep-alive` 缓存,需要匹配组件的 `name` 和路由地址保持一致'  
141 - }  
142 -])  
143 -// 列表  
144 -export const columns = reactive<TableColumn[]>([  
145 - {  
146 - label: '菜单名称',  
147 - field: 'name'  
148 - },  
149 - {  
150 - label: '权限标识',  
151 - field: 'permission',  
152 - component: 'Input',  
153 - formItemProps: {  
154 - rules: [required]  
155 - }  
156 - },  
157 - {  
158 - label: '排序',  
159 - field: 'sort'  
160 - },  
161 - {  
162 - label: t('table.action'),  
163 - field: 'action',  
164 - width: '180px'  
165 - }  
166 -])  
yudao-ui-admin-vue3/src/views/system/menu/old.vue deleted
1 -<script setup lang="ts">  
2 -import { onMounted, ref, unref } from 'vue'  
3 -import { handleTree } from '@/utils/tree'  
4 -import { useI18n } from '@/hooks/web/useI18n'  
5 -import { IconSelect } from '@/components/Icon'  
6 -import { ElCard, ElMessage, ElMessageBox, ElTree, ElTreeSelect } from 'element-plus'  
7 -import { columns, modelSchema } from './menu.data'  
8 -import { Form, FormExpose } from '@/components/Form'  
9 -import * as MenuApi from '@/api/system/menu'  
10 -import { MenuVO } from '@/api/system/menu/types'  
11 -const { t } = useI18n() // 国际化  
12 -interface Tree {  
13 - id: number  
14 - name: string  
15 - children?: Tree[]  
16 -}  
17 -const defaultProps = {  
18 - children: 'children',  
19 - label: 'name',  
20 - value: 'id'  
21 -}  
22 -// ========== 创建菜单树结构 ==========  
23 -const menuOptions = ref([]) // 树形结构  
24 -const treeRef = ref<InstanceType<typeof ElTree>>()  
25 -const getTree = async () => {  
26 - const res = await MenuApi.listSimpleMenusApi()  
27 - menuOptions.value = handleTree(res)  
28 -}  
29 -const filterNode = (value: string, data: Tree) => {  
30 - if (!value) return true  
31 - return data.name.includes(value)  
32 -}  
33 -// ========== 菜单信息form表单 ==========  
34 -const loading = ref(false) // 遮罩层  
35 -const formRef = ref<FormExpose>()  
36 -const iconModel = ref('ep:user')  
37 -const menuParentId = ref()  
38 -const menuStatus = ref('add')  
39 -const menuTitle = ref('菜单信息')  
40 -const showEdit = ref(false)  
41 -// 提交按钮  
42 -const submitForm = async () => {  
43 - loading.value = true  
44 - // 提交请求  
45 - try {  
46 - const data = unref(formRef)?.formModel as MenuVO  
47 - data.parentId = menuParentId.value  
48 - // TODO: 表单提交待完善  
49 - if (menuStatus.value === 'add') {  
50 - await MenuApi.createMenuApi(data)  
51 - } else if (menuStatus.value === 'edit') {  
52 - await MenuApi.updateMenuApi(data)  
53 - }  
54 - } finally {  
55 - loading.value = false  
56 - }  
57 -}  
58 -// ========== 按钮列表相关 ==========  
59 -const tableData = ref([])  
60 -const tableLoading = ref(false)  
61 -const onDisabled = ref(true)  
62 -const tableTitle = ref('按钮信息')  
63 -// 树点击事件  
64 -const handleMenuNodeClick = async (data: { [key: string]: any }) => {  
65 - showEdit.value = true  
66 - const res = await MenuApi.getMenuApi(data.id)  
67 - menuTitle.value = res.name + '-菜单信息'  
68 - tableTitle.value = res.name + '-按钮列表'  
69 - menuParentId.value = data.id  
70 - tableData.value = await MenuApi.getMenuListApi({ name: res.name })  
71 - unref(formRef)?.setValues(res)  
72 - onDisabled.value = true  
73 - changeDisabled()  
74 -}  
75 -const handleCreate = () => {  
76 - // 重置表单  
77 - unref(formRef)?.getElFormRef()?.resetFields()  
78 - menuParentId.value = 0  
79 - onDisabled.value = false  
80 - changeDisabled()  
81 -}  
82 -const handleEdit = () => {  
83 - onDisabled.value = false  
84 - changeDisabled()  
85 -}  
86 -const changeDisabled = () => {  
87 - unref(formRef)?.setProps({  
88 - disabled: onDisabled  
89 - })  
90 -}  
91 -// 修改操作  
92 -const handleUpdate = async (row: MenuVO) => {  
93 - // 设置数据  
94 - const res = await MenuApi.getMenuApi(row.id)  
95 - unref(formRef)?.setValues(res)  
96 -}  
97 -  
98 -// 删除操作  
99 -const handleDelete = (row: MenuVO) => {  
100 - ElMessageBox.confirm(t('common.delDataMessage'), t('common.confirmTitle'), {  
101 - confirmButtonText: t('common.ok'),  
102 - cancelButtonText: t('common.cancel'),  
103 - type: 'warning'  
104 - })  
105 - .then(async () => {  
106 - await MenuApi.deleteMenuApi(row.id)  
107 - ElMessage.success(t('common.delSuccess'))  
108 - })  
109 - .catch(() => {})  
110 -}  
111 -onMounted(async () => {  
112 - await getTree()  
113 -})  
114 -</script>  
115 -<template>  
116 - <div class="flex">  
117 - <el-card class="w-1/4 menu" :gutter="12" shadow="always">  
118 - <template #header>  
119 - <div class="card-header">  
120 - <span>菜单列表</span>  
121 - <el-button type="primary" v-hasPermi="['system:menu:create']" @click="handleCreate">  
122 - 新增根节点  
123 - </el-button>  
124 - </div>  
125 - </template>  
126 - <!-- <p>菜单列表</p> -->  
127 - <el-tree  
128 - ref="treeRef"  
129 - node-key="id"  
130 - :accordion="true"  
131 - :data="menuOptions"  
132 - :props="defaultProps"  
133 - :highlight-current="true"  
134 - :filter-method="filterNode"  
135 - @node-click="handleMenuNodeClick"  
136 - />  
137 - </el-card>  
138 - <el-card class="w-1/2 menu" style="margin-left: 10px" :gutter="12" shadow="hover">  
139 - <template #header>  
140 - <div class="card-header">  
141 - <span>{{ menuTitle }}</span>  
142 - </div>  
143 - </template>  
144 - <div v-if="!showEdit">  
145 - <span>请从左侧选择菜单</span>  
146 - </div>  
147 - <div v-if="showEdit">  
148 - <Form :loading="loading" :schema="modelSchema" ref="formRef">  
149 - <template #parentId>  
150 - <el-tree-select  
151 - node-key="id"  
152 - v-model="menuParentId"  
153 - :props="defaultProps"  
154 - :data="menuOptions"  
155 - check-strictly  
156 - />  
157 - </template>  
158 - <template #icon>  
159 - <IconSelect v-model="iconModel" />  
160 - </template>  
161 - </Form>  
162 - <el-button  
163 - v-if="!onDisabled"  
164 - type="primary"  
165 - v-hasPermi="['system:menu:update']"  
166 - :loading="loading"  
167 - @click="submitForm"  
168 - >  
169 - {{ t('action.save') }}  
170 - </el-button>  
171 - <el-button v-if="!onDisabled" :loading="loading" @click="showEdit = false">  
172 - {{ t('common.cancel') }}  
173 - </el-button>  
174 - <el-button  
175 - v-if="onDisabled"  
176 - v-hasPermi="['system:menu:update']"  
177 - type="primary"  
178 - :loading="loading"  
179 - @click="handleEdit"  
180 - >  
181 - {{ t('action.edit') }}  
182 - </el-button>  
183 - </div>  
184 - </el-card>  
185 - <el-card class="w-1/2 menu" style="margin-left: 10px" :gutter="12" shadow="hover">  
186 - <template #header>  
187 - <div class="card-header">  
188 - <span>{{ tableTitle }}</span>  
189 - <!-- <el-button type="primary">新增根节点</el-button> -->  
190 - </div>  
191 - </template>  
192 - <!-- 列表 -->  
193 - <Table :loading="tableLoading" :columns="columns" :data="tableData">  
194 - <template #action="{ row }">  
195 - <el-button  
196 - link  
197 - type="primary"  
198 - v-hasPermi="['system:menu:update']"  
199 - @click="handleUpdate(row)"  
200 - >  
201 - <Icon icon="ep:edit" class="mr-5px" /> {{ t('action.edit') }}  
202 - </el-button>  
203 - <el-button  
204 - link  
205 - type="primary"  
206 - v-hasPermi="['system:menu:delete']"  
207 - @click="handleDelete(row)"  
208 - >  
209 - <Icon icon="ep:delete" class="mr-5px" /> {{ t('action.del') }}  
210 - </el-button>  
211 - </template>  
212 - </Table>  
213 - </el-card>  
214 - </div>  
215 -</template>  
216 -<style scoped>  
217 -.menu {  
218 - height: 1000px;  
219 - max-height: 1800px;  
220 -}  
221 -.card-header {  
222 - display: flex;  
223 - justify-content: space-between;  
224 - align-items: center;  
225 -}  
226 -</style>  
yudao-ui-admin-vue3/src/views/system/notice/index.vue
@@ -11,7 +11,7 @@ import { rules, allSchemas } from &#39;./notice.data&#39; @@ -11,7 +11,7 @@ import { rules, allSchemas } from &#39;./notice.data&#39;
11 import * as NoticeApi from '@/api/system/notice' 11 import * as NoticeApi from '@/api/system/notice'
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 // ========== 列表相关 ========== 13 // ========== 列表相关 ==========
14 -const { register, tableObject, methods } = useTable<PageResult<NoticeVO>, NoticeVO>({ 14 +const { register, tableObject, methods } = useTable<NoticeVO>({
15 getListApi: NoticeApi.getNoticePageApi, 15 getListApi: NoticeApi.getNoticePageApi,
16 delListApi: NoticeApi.deleteNoticeApi 16 delListApi: NoticeApi.deleteNoticeApi
17 }) 17 })
@@ -95,7 +95,7 @@ getList() @@ -95,7 +95,7 @@ getList()
95 <!-- 操作工具栏 --> 95 <!-- 操作工具栏 -->
96 <div class="mb-10px"> 96 <div class="mb-10px">
97 <el-button type="primary" v-hasPermi="['system:notice:create']" @click="handleCreate"> 97 <el-button type="primary" v-hasPermi="['system:notice:create']" @click="handleCreate">
98 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 98 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
99 </el-button> 99 </el-button>
100 </div> 100 </div>
101 <!-- 列表 --> 101 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
@@ -12,7 +12,7 @@ import * as ClientApi from &#39;@/api/system/oauth2/client&#39; @@ -12,7 +12,7 @@ import * as ClientApi from &#39;@/api/system/oauth2/client&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<OAuth2ClientVo>, OAuth2ClientVo>({ 15 +const { register, tableObject, methods } = useTable<OAuth2ClientVo>({
16 getListApi: ClientApi.getOAuth2ClientPageApi, 16 getListApi: ClientApi.getOAuth2ClientPageApi,
17 delListApi: ClientApi.deleteOAuth2ClientApi 17 delListApi: ClientApi.deleteOAuth2ClientApi
18 }) 18 })
@@ -96,7 +96,7 @@ getList() @@ -96,7 +96,7 @@ getList()
96 <!-- 操作工具栏 --> 96 <!-- 操作工具栏 -->
97 <div class="mb-10px"> 97 <div class="mb-10px">
98 <el-button type="primary" v-hasPermi="['system:oauth2-client:create']" @click="handleCreate"> 98 <el-button type="primary" v-hasPermi="['system:oauth2-client:create']" @click="handleCreate">
99 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 99 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
100 </el-button> 100 </el-button>
101 </div> 101 </div>
102 <!-- 列表 --> 102 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
@@ -9,7 +9,7 @@ import * as TokenApi from &#39;@/api/system/oauth2/token&#39; @@ -9,7 +9,7 @@ import * as TokenApi from &#39;@/api/system/oauth2/token&#39;
9 import { ref } from 'vue' 9 import { ref } from 'vue'
10 const { t } = useI18n() // 国际化 10 const { t } = useI18n() // 国际化
11 // ========== 列表相关 ========== 11 // ========== 列表相关 ==========
12 -const { register, tableObject, methods } = useTable<PageResult<OAuth2TokenVo>, OAuth2TokenVo>({ 12 +const { register, tableObject, methods } = useTable<OAuth2TokenVo>({
13 getListApi: TokenApi.getAccessTokenPageApi, 13 getListApi: TokenApi.getAccessTokenPageApi,
14 delListApi: TokenApi.deleteAccessTokenApi 14 delListApi: TokenApi.deleteAccessTokenApi
15 }) 15 })
yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
1 <script setup lang="ts"> 1 <script setup lang="ts">
2 import dayjs from 'dayjs' 2 import dayjs from 'dayjs'
3 import { useTable } from '@/hooks/web/useTable' 3 import { useTable } from '@/hooks/web/useTable'
4 -import { allSchemas } from './operateLog.data' 4 +import { allSchemas } from './operatelog.data'
5 import { DICT_TYPE } from '@/utils/dict' 5 import { DICT_TYPE } from '@/utils/dict'
6 import { useI18n } from '@/hooks/web/useI18n' 6 import { useI18n } from '@/hooks/web/useI18n'
7 -import type { OperateLogVO } from '@/api/system/operateLog/types'  
8 -import * as OperateLogApi from '@/api/system/operateLog' 7 +import type { OperateLogVO } from '@/api/system/operatelog/types'
  8 +import * as OperateLogApi from '@/api/system/operatelog'
9 import { ref } from 'vue' 9 import { ref } from 'vue'
10 const { t } = useI18n() // 国际化 10 const { t } = useI18n() // 国际化
11 // ========== 列表相关 ========== 11 // ========== 列表相关 ==========
12 -const { register, tableObject, methods } = useTable<PageResult<OperateLogVO>, OperateLogVO>({ 12 +const { register, tableObject, methods } = useTable<OperateLogVO>({
13 getListApi: OperateLogApi.getOperateLogPageApi, 13 getListApi: OperateLogApi.getOperateLogPageApi,
14 exportListApi: OperateLogApi.exportOperateLogApi 14 exportListApi: OperateLogApi.exportOperateLogApi
15 }) 15 })
@@ -20,7 +20,7 @@ const dialogTitle = ref(t(&#39;action.detail&#39;)) // 弹出层标题 @@ -20,7 +20,7 @@ const dialogTitle = ref(t(&#39;action.detail&#39;)) // 弹出层标题
20 const { getList, setSearchParams, exportList } = methods 20 const { getList, setSearchParams, exportList } = methods
21 // 导出操作 21 // 导出操作
22 const handleExport = async () => { 22 const handleExport = async () => {
23 - await exportList('数据.xls') 23 + await exportList('操作日志.xls')
24 } 24 }
25 // 详情 25 // 详情
26 const handleDetail = (row: OperateLogVO) => { 26 const handleDetail = (row: OperateLogVO) => {
yudao-ui-admin-vue3/src/views/system/operatelog/operatelog.data.ts
@@ -100,7 +100,7 @@ const crudSchemas = reactive&lt;CrudSchema[]&gt;([ @@ -100,7 +100,7 @@ const crudSchemas = reactive&lt;CrudSchema[]&gt;([
100 { 100 {
101 label: t('table.action'), 101 label: t('table.action'),
102 field: 'action', 102 field: 'action',
103 - width: '80px', 103 + width: '120px',
104 form: { 104 form: {
105 show: false 105 show: false
106 }, 106 },
yudao-ui-admin-vue3/src/views/system/post/index.vue
@@ -12,7 +12,7 @@ import * as PostApi from &#39;@/api/system/post&#39; @@ -12,7 +12,7 @@ import * as PostApi from &#39;@/api/system/post&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<PostVO>, PostVO>({ 15 +const { register, tableObject, methods } = useTable<PostVO>({
16 getListApi: PostApi.getPostPageApi, 16 getListApi: PostApi.getPostPageApi,
17 delListApi: PostApi.deletePostApi, 17 delListApi: PostApi.deletePostApi,
18 exportListApi: PostApi.exportPostApi 18 exportListApi: PostApi.exportPostApi
@@ -102,7 +102,7 @@ getList() @@ -102,7 +102,7 @@ getList()
102 <!-- 操作工具栏 --> 102 <!-- 操作工具栏 -->
103 <div class="mb-10px"> 103 <div class="mb-10px">
104 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate"> 104 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate">
105 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 105 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
106 </el-button> 106 </el-button>
107 <el-button 107 <el-button
108 type="warning" 108 type="warning"
yudao-ui-admin-vue3/src/views/system/role/index.vue
@@ -27,7 +27,7 @@ import { SystemDataScopeEnum } from &#39;@/utils/constants&#39; @@ -27,7 +27,7 @@ import { SystemDataScopeEnum } from &#39;@/utils/constants&#39;
27 const { t } = useI18n() // 国际化 27 const { t } = useI18n() // 国际化
28 28
29 // ========== 列表相关 ========== 29 // ========== 列表相关 ==========
30 -const { register, tableObject, methods } = useTable<PageResult<RoleVO>, RoleVO>({ 30 +const { register, tableObject, methods } = useTable<RoleVO>({
31 getListApi: RoleApi.getRolePageApi, 31 getListApi: RoleApi.getRolePageApi,
32 delListApi: RoleApi.deleteRoleApi 32 delListApi: RoleApi.deleteRoleApi
33 }) 33 })
@@ -159,7 +159,7 @@ getList() @@ -159,7 +159,7 @@ getList()
159 <!-- 操作工具栏 --> 159 <!-- 操作工具栏 -->
160 <div class="mb-10px"> 160 <div class="mb-10px">
161 <el-button type="primary" v-hasPermi="['system:role:create']" @click="handleCreate"> 161 <el-button type="primary" v-hasPermi="['system:role:create']" @click="handleCreate">
162 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 162 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
163 </el-button> 163 </el-button>
164 </div> 164 </div>
165 <!-- 列表 --> 165 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
@@ -12,7 +12,7 @@ import * as SensitiveWordApi from &#39;@/api/system/sensitiveWord&#39; @@ -12,7 +12,7 @@ import * as SensitiveWordApi from &#39;@/api/system/sensitiveWord&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<SensitiveWordVO>, SensitiveWordVO>({ 15 +const { register, tableObject, methods } = useTable<SensitiveWordVO>({
16 getListApi: SensitiveWordApi.getSensitiveWordPageApi, 16 getListApi: SensitiveWordApi.getSensitiveWordPageApi,
17 delListApi: SensitiveWordApi.deleteSensitiveWordApi, 17 delListApi: SensitiveWordApi.deleteSensitiveWordApi,
18 exportListApi: SensitiveWordApi.exportSensitiveWordApi 18 exportListApi: SensitiveWordApi.exportSensitiveWordApi
@@ -110,7 +110,7 @@ onMounted(async () =&gt; { @@ -110,7 +110,7 @@ onMounted(async () =&gt; {
110 <!-- 操作工具栏 --> 110 <!-- 操作工具栏 -->
111 <div class="mb-10px"> 111 <div class="mb-10px">
112 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate"> 112 <el-button type="primary" v-hasPermi="['system:post:create']" @click="handleCreate">
113 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 113 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
114 </el-button> 114 </el-button>
115 <el-button 115 <el-button
116 type="warning" 116 type="warning"
yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
@@ -12,7 +12,7 @@ import * as SmsChannelApi from &#39;@/api/system/sms/smsChannel&#39; @@ -12,7 +12,7 @@ import * as SmsChannelApi from &#39;@/api/system/sms/smsChannel&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<SmsChannelVO>, SmsChannelVO>({ 15 +const { register, tableObject, methods } = useTable<SmsChannelVO>({
16 getListApi: SmsChannelApi.getSmsChannelPageApi, 16 getListApi: SmsChannelApi.getSmsChannelPageApi,
17 delListApi: SmsChannelApi.deleteSmsChannelApi 17 delListApi: SmsChannelApi.deleteSmsChannelApi
18 }) 18 })
@@ -96,7 +96,7 @@ getList() @@ -96,7 +96,7 @@ getList()
96 <!-- 操作工具栏 --> 96 <!-- 操作工具栏 -->
97 <div class="mb-10px"> 97 <div class="mb-10px">
98 <el-button type="primary" v-hasPermi="['system:sms-channel:create']" @click="handleCreate"> 98 <el-button type="primary" v-hasPermi="['system:sms-channel:create']" @click="handleCreate">
99 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 99 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
100 </el-button> 100 </el-button>
101 </div> 101 </div>
102 <!-- 列表 --> 102 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
@@ -10,7 +10,7 @@ import * as SmsLoglApi from &#39;@/api/system/sms/smsLog&#39; @@ -10,7 +10,7 @@ import * as SmsLoglApi from &#39;@/api/system/sms/smsLog&#39;
10 const { t } = useI18n() // 国际化 10 const { t } = useI18n() // 国际化
11 11
12 // ========== 列表相关 ========== 12 // ========== 列表相关 ==========
13 -const { register, tableObject, methods } = useTable<PageResult<SmsLogVO>, SmsLogVO>({ 13 +const { register, tableObject, methods } = useTable<SmsLogVO>({
14 getListApi: SmsLoglApi.getSmsLogPageApi 14 getListApi: SmsLoglApi.getSmsLogPageApi
15 }) 15 })
16 const { getList, setSearchParams } = methods 16 const { getList, setSearchParams } = methods
yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
@@ -12,7 +12,7 @@ import * as SmsTemplateApi from &#39;@/api/system/sms/smsTemplate&#39; @@ -12,7 +12,7 @@ import * as SmsTemplateApi from &#39;@/api/system/sms/smsTemplate&#39;
12 const { t } = useI18n() // 国际化 12 const { t } = useI18n() // 国际化
13 13
14 // ========== 列表相关 ========== 14 // ========== 列表相关 ==========
15 -const { register, tableObject, methods } = useTable<PageResult<SmsTemplateVO>, SmsTemplateVO>({ 15 +const { register, tableObject, methods } = useTable<SmsTemplateVO>({
16 getListApi: SmsTemplateApi.getSmsTemplatePageApi, 16 getListApi: SmsTemplateApi.getSmsTemplatePageApi,
17 delListApi: SmsTemplateApi.deleteSmsTemplateApi 17 delListApi: SmsTemplateApi.deleteSmsTemplateApi
18 }) 18 })
@@ -114,7 +114,7 @@ getList() @@ -114,7 +114,7 @@ getList()
114 <!-- 操作工具栏 --> 114 <!-- 操作工具栏 -->
115 <div class="mb-10px"> 115 <div class="mb-10px">
116 <el-button type="primary" v-hasPermi="['system:sms-channel:create']" @click="handleCreate"> 116 <el-button type="primary" v-hasPermi="['system:sms-channel:create']" @click="handleCreate">
117 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 117 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
118 </el-button> 118 </el-button>
119 </div> 119 </div>
120 <!-- 列表 --> 120 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/tenant/index.vue
@@ -14,7 +14,7 @@ import { TenantPackageVO } from &#39;@/api/system/tenantPackage/types&#39; @@ -14,7 +14,7 @@ import { TenantPackageVO } from &#39;@/api/system/tenantPackage/types&#39;
14 const { t } = useI18n() // 国际化 14 const { t } = useI18n() // 国际化
15 15
16 // ========== 列表相关 ========== 16 // ========== 列表相关 ==========
17 -const { register, tableObject, methods } = useTable<PageResult<TenantVO>, TenantVO>({ 17 +const { register, tableObject, methods } = useTable<TenantVO>({
18 getListApi: TenantApi.getTenantPageApi, 18 getListApi: TenantApi.getTenantPageApi,
19 delListApi: TenantApi.deleteTenantApi, 19 delListApi: TenantApi.deleteTenantApi,
20 exportListApi: TenantApi.exportTenantApi 20 exportListApi: TenantApi.exportTenantApi
@@ -128,7 +128,7 @@ onMounted(async () =&gt; { @@ -128,7 +128,7 @@ onMounted(async () =&gt; {
128 <!-- 操作工具栏 --> 128 <!-- 操作工具栏 -->
129 <div class="mb-10px"> 129 <div class="mb-10px">
130 <el-button type="primary" v-hasPermi="['system:tenant:create']" @click="handleCreate"> 130 <el-button type="primary" v-hasPermi="['system:tenant:create']" @click="handleCreate">
131 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 131 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
132 </el-button> 132 </el-button>
133 <el-button 133 <el-button
134 type="warning" 134 type="warning"
yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
@@ -30,7 +30,7 @@ const menuExpand = ref(false) @@ -30,7 +30,7 @@ const menuExpand = ref(false)
30 const menuNodeAll = ref(false) 30 const menuNodeAll = ref(false)
31 31
32 // ========== 列表相关 ========== 32 // ========== 列表相关 ==========
33 -const { register, tableObject, methods } = useTable<PageResult<TenantPackageVO>, TenantPackageVO>({ 33 +const { register, tableObject, methods } = useTable<TenantPackageVO>({
34 getListApi: TenantPackageApi.getTenantPackageTypePageApi, 34 getListApi: TenantPackageApi.getTenantPackageTypePageApi,
35 delListApi: TenantPackageApi.deleteTenantPackageTypeApi 35 delListApi: TenantPackageApi.deleteTenantPackageTypeApi
36 }) 36 })
@@ -123,7 +123,7 @@ onMounted(async () =&gt; { @@ -123,7 +123,7 @@ onMounted(async () =&gt; {
123 <!-- 操作工具栏 --> 123 <!-- 操作工具栏 -->
124 <div class="mb-10px"> 124 <div class="mb-10px">
125 <el-button type="primary" @click="handleCreate"> 125 <el-button type="primary" @click="handleCreate">
126 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 126 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
127 </el-button> 127 </el-button>
128 </div> 128 </div>
129 <!-- 列表 --> 129 <!-- 列表 -->
yudao-ui-admin-vue3/src/views/system/user/index.vue
@@ -47,7 +47,7 @@ const { t } = useI18n() // 国际化 @@ -47,7 +47,7 @@ const { t } = useI18n() // 国际化
47 47
48 // ========== 列表相关 ========== 48 // ========== 列表相关 ==========
49 const tableTitle = ref('用户列表') 49 const tableTitle = ref('用户列表')
50 -const { register, tableObject, methods } = useTable<PageResult<UserVO>, UserVO>({ 50 +const { register, tableObject, methods } = useTable<UserVO>({
51 getListApi: UserApi.getUserPageApi, 51 getListApi: UserApi.getUserPageApi,
52 delListApi: UserApi.deleteUserApi, 52 delListApi: UserApi.deleteUserApi,
53 exportListApi: UserApi.exportUserApi 53 exportListApi: UserApi.exportUserApi
@@ -67,7 +67,7 @@ const filterNode = (value: string, data: Tree) =&gt; { @@ -67,7 +67,7 @@ const filterNode = (value: string, data: Tree) =&gt; {
67 return data.name.includes(value) 67 return data.name.includes(value)
68 } 68 }
69 const handleDeptNodeClick = (data: { [key: string]: any }) => { 69 const handleDeptNodeClick = (data: { [key: string]: any }) => {
70 - tableObject.paramsObj.params = { 70 + tableObject.params = {
71 deptId: data.id 71 deptId: data.id
72 } 72 }
73 tableTitle.value = data.name 73 tableTitle.value = data.name
@@ -157,6 +157,19 @@ const handleStatusChange = async (row: UserVO) =&gt; { @@ -157,6 +157,19 @@ const handleStatusChange = async (row: UserVO) =&gt; {
157 row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE 157 row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE
158 }) 158 })
159 } 159 }
  160 +// 重置密码
  161 +const handleResetPwd = (row: UserVO) => {
  162 + ElMessageBox.prompt('请输入"' + row.username + '"的新密码', '提示', {
  163 + confirmButtonText: t('common.ok'),
  164 + cancelButtonText: t('common.cancel')
  165 + }).then(({ value }) => {
  166 + console.log(row.id)
  167 + console.log(value)
  168 + UserApi.resetUserPwdApi(row.id, value).then(() => {
  169 + ElMessage.success('修改成功,新密码是:' + value)
  170 + })
  171 + })
  172 +}
160 // 删除操作 173 // 删除操作
161 const handleDelete = (row: UserVO) => { 174 const handleDelete = (row: UserVO) => {
162 delList(row.id, false) 175 delList(row.id, false)
@@ -283,12 +296,16 @@ getList() @@ -283,12 +296,16 @@ getList()
283 <!-- 操作工具栏 --> 296 <!-- 操作工具栏 -->
284 <div class="mb-10px"> 297 <div class="mb-10px">
285 <el-button type="primary" v-hasPermi="['system:user:create']" @click="handleAdd"> 298 <el-button type="primary" v-hasPermi="['system:user:create']" @click="handleAdd">
286 - <Icon icon="el:zoom-in" class="mr-5px" /> {{ t('action.add') }} 299 + <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
287 </el-button> 300 </el-button>
288 - <el-button v-hasPermi="['system:user:import']" @click="importDialogVisible = true"> 301 + <el-button
  302 + type="info"
  303 + v-hasPermi="['system:user:import']"
  304 + @click="importDialogVisible = true"
  305 + >
289 <Icon icon="ep:upload" class="mr-5px" /> {{ t('action.import') }} 306 <Icon icon="ep:upload" class="mr-5px" /> {{ t('action.import') }}
290 </el-button> 307 </el-button>
291 - <el-button v-hasPermi="['system:user:export']" @click="handleExport"> 308 + <el-button type="warning" v-hasPermi="['system:user:export']" @click="handleExport">
292 <Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }} 309 <Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }}
293 </el-button> 310 </el-button>
294 </div> 311 </div>
@@ -339,6 +356,14 @@ getList() @@ -339,6 +356,14 @@ getList()
339 <el-button 356 <el-button
340 link 357 link
341 type="primary" 358 type="primary"
  359 + v-hasPermi="['system:user:update-password']"
  360 + @click="handleResetPwd(row)"
  361 + >
  362 + <Icon icon="ep:key" class="mr-5px" /> 重置密码
  363 + </el-button>
  364 + <el-button
  365 + link
  366 + type="primary"
342 v-hasPermi="['system:user:delete']" 367 v-hasPermi="['system:user:delete']"
343 @click="handleDelete(row)" 368 @click="handleDelete(row)"
344 > 369 >
@@ -411,6 +436,7 @@ getList() @@ -411,6 +436,7 @@ getList()
411 <el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button> 436 <el-button @click="dialogVisible = false">{{ t('dialog.close') }}</el-button>
412 </template> 437 </template>
413 </Dialog> 438 </Dialog>
  439 + <!-- 导入 -->
414 <Dialog 440 <Dialog
415 v-model="importDialogVisible" 441 v-model="importDialogVisible"
416 :title="importDialogTitle" 442 :title="importDialogTitle"
yudao-ui-admin-vue3/src/views/system/user/user.data.ts
@@ -121,7 +121,7 @@ const crudSchemas = reactive&lt;CrudSchema[]&gt;([ @@ -121,7 +121,7 @@ const crudSchemas = reactive&lt;CrudSchema[]&gt;([
121 }, 121 },
122 { 122 {
123 field: 'action', 123 field: 'action',
124 - width: '240px', 124 + width: '340px',
125 label: t('table.action'), 125 label: t('table.action'),
126 form: { 126 form: {
127 show: false 127 show: false
yudao-ui-admin-vue3/types/axios.d.ts deleted
1 -export type ErrorMessageMode = 'none' | 'modal' | 'message' | undefined  
2 -  
3 -export interface RequestOptions {  
4 - // Splicing request parameters to url  
5 - joinParamsToUrl?: boolean  
6 - // Format request parameter time  
7 - formatDate?: boolean  
8 - // Whether to process the request result  
9 - isTransformResponse?: boolean  
10 - // Whether to return native response headers  
11 - // For example: use this attribute when you need to get the response headers  
12 - isReturnNativeResponse?: boolean  
13 - // Whether to join url  
14 - joinPrefix?: boolean  
15 - // Interface address, use the default apiUrl if you leave it blank  
16 - apiUrl?: string  
17 - // 请求拼接路径  
18 - urlPrefix?: string  
19 - // Error message prompt type  
20 - errorMessageMode?: ErrorMessageMode  
21 - // Whether to add a timestamp  
22 - joinTime?: boolean  
23 - ignoreCancelToken?: boolean  
24 - // Whether to send token in header  
25 - withToken?: boolean  
26 - // 请求重试机制  
27 - retryRequest?: RetryRequest  
28 -}  
29 -  
30 -export interface RetryRequest {  
31 - isOpenRetry: boolean  
32 - count: number  
33 - waitTime: number  
34 -}  
35 -export interface RequestResult<T = any> {  
36 - code: number  
37 - type: 'success' | 'error' | 'warning'  
38 - msg: string  
39 - result: T  
40 - data: T  
41 -}  
42 -  
43 -// multipart/form-data: upload file  
44 -export interface UploadFileParams {  
45 - // Other parameters  
46 - data?: Recordable  
47 - // File parameter interface field name  
48 - name?: string  
49 - // file name  
50 - file: File | Blob  
51 - // file name  
52 - filename?: string  
53 - [key: string]: any  
54 -}  
yudao-ui-admin-vue3/types/global.d.ts
@@ -21,11 +21,11 @@ declare type AxiosHeaders = @@ -21,11 +21,11 @@ declare type AxiosHeaders =
21 | 'application/x-www-form-urlencoded' 21 | 'application/x-www-form-urlencoded'
22 | 'multipart/form-data' 22 | 'multipart/form-data'
23 23
24 -declare type AxiosMethod = 'get' | 'post' | 'delete' | 'put' 24 +declare type AxiosMethod = 'GET' | 'POST' | 'DELETE' | 'PUT'
25 25
26 declare type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' 26 declare type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'
27 27
28 -declare type AxiosConfig = { 28 +declare interface AxiosConfig {
29 params?: any 29 params?: any
30 data?: any 30 data?: any
31 url?: string 31 url?: string
@@ -34,7 +34,7 @@ declare type AxiosConfig = { @@ -34,7 +34,7 @@ declare type AxiosConfig = {
34 responseType?: AxiosResponseType 34 responseType?: AxiosResponseType
35 } 35 }
36 36
37 -declare type PageResult<T> = {  
38 - list: T[]  
39 - total?: number 37 +declare interface IResponse<T = any> {
  38 + code?: number
  39 + data: T extends any ? T : T & any
40 } 40 }
yudao-ui-admin-vue3/vite.config.ts
@@ -30,8 +30,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; { @@ -30,8 +30,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; {
30 env = loadEnv(mode, root) 30 env = loadEnv(mode, root)
31 } 31 }
32 return { 32 return {
33 - base: command === 'serve' ? './' : env.VITE_BASE_PATH,  
34 - root: process.cwd(), 33 + base: env.VITE_BASE_PATH,
  34 + root: root,
35 // 服务端渲染 35 // 服务端渲染
36 server: { 36 server: {
37 // 是否开启 https 37 // 是否开启 https
@@ -65,6 +65,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; { @@ -65,6 +65,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; {
65 }] 65 }]
66 }), 66 }),
67 EslintPlugin({ 67 EslintPlugin({
  68 + cache: false,
68 include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件 69 include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件
69 }), 70 }),
70 VueI18n({ 71 VueI18n({
@@ -88,6 +89,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; { @@ -88,6 +89,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; {
88 } 89 }
89 }) 90 })
90 ], 91 ],
  92 +
91 css: { 93 css: {
92 preprocessorOptions: { 94 preprocessorOptions: {
93 less: { 95 less: {
@@ -113,6 +115,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; { @@ -113,6 +115,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig =&gt; {
113 minify: 'terser', 115 minify: 'terser',
114 outDir: env.VITE_OUT_DIR || 'dist', 116 outDir: env.VITE_OUT_DIR || 'dist',
115 sourcemap: env.VITE_SOURCEMAP === 'true' ? 'inline' : false, 117 sourcemap: env.VITE_SOURCEMAP === 'true' ? 'inline' : false,
  118 + // brotliSize: false,
116 terserOptions: { 119 terserOptions: {
117 compress: { 120 compress: {
118 drop_debugger: env.VITE_DROP_DEBUGGER === 'true', 121 drop_debugger: env.VITE_DROP_DEBUGGER === 'true',